<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>RLE_SPRITE and class</title>
		<link>http://www.allegro.cc/forums/view/567763</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 18 Feb 2006 17:28:26 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I declare a RLE_SPRITE, when using it in the Draw function, the comiler says it&#39;s undefined:
</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><span class="k1">class</span> AI</td></tr><tr><td class="number">3</td><td><span class="k2">{</span></td></tr><tr><td class="number">4</td><td>public:</td></tr><tr><td class="number">5</td><td>    <span class="k1">int</span> x, y, chips, ice, water, cola, chance<span class="k2">;</span></td></tr><tr><td class="number">6</td><td>    AI<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">7</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>        x<span class="k3">=</span><span class="n">0</span>,y<span class="k3">=</span><span class="n">300</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>        <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> ab,<span class="k3">*</span> bb,<span class="k3">*</span> cb<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>        ab<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">"man1_1.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>        bb<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">"man1_2.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>        cb<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">"man1_3.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>        <a href="http://www.allegro.cc/manual/RLE_SPRITE" target="_blank"><span class="a">RLE_SPRITE</span></a> <span class="k3">*</span>a,<span class="k3">*</span>b,<span class="k3">*</span>c<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>        a<span class="k3">=</span><a href="http://www.allegro.cc/manual/get_rle_sprite" target="_blank"><span class="a">get_rle_sprite</span></a><span class="k2">(</span>ab<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>        b<span class="k3">=</span><a href="http://www.allegro.cc/manual/get_rle_sprite" target="_blank"><span class="a">get_rle_sprite</span></a><span class="k2">(</span>bb<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>        c<span class="k3">=</span><a href="http://www.allegro.cc/manual/get_rle_sprite" target="_blank"><span class="a">get_rle_sprite</span></a><span class="k2">(</span>cb<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>        chance<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">4</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>        <span class="k1">if</span><span class="k2">(</span>chance<span class="k3">=</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">19</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">20</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">21</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">22</td><td>    <span class="k1">void</span> Draw<span class="k2">(</span><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">23</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">24</td><td>        <a href="http://www.allegro.cc/manual/draw_rle_sprite" target="_blank"><span class="a">draw_rle_sprite</span></a><span class="k2">(</span>buffer,a,<span class="n">50</span>,<span class="n">50</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">26</td><td><span class="k2">}</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>
WHy doesn&#39;t the compiler see the RLE_SPRITE?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ilyas Salman)</author>
		<pubDate>Sat, 18 Feb 2006 16:24:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Ilyas Salman said:</div><div class="quote"><p>
WHy doesn&#39;t the compiler see the RLE_SPRITE?
</p></div></div><p>
It isn&#39;t available in your &quot;Draw&quot; method, because it is local to your constructor. You are also creating memory leaks in there.<br />For a quick fix make &quot;BITMAP* ab,* bb,* cb;&quot; and &quot;RLE_SPRITE *a,*b,*c;&quot; private vars of your class and make sure you use error handling (loading the bitmaps or getting the RLE sprites can fail), also add a destructor in which you free the bitmaps and sprites, using &quot;destroy_bitmap&quot; and &quot;destroy_rle_sprite&quot;.</p><p>[append]<br />It is bad design though to have the object load any bitmaps in case there will be more than one instance of it in your application, since that would have each instance unnecessarily keep a full copy of the same bitmaps in memory, which is quite wasteful. It would be better to load the bitmaps(and RLE sprites, if you really want to use them) just once to somewhere else and just give your objects a pointer to them.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dennis)</author>
		<pubDate>Sat, 18 Feb 2006 17:28:26 +0000</pubDate>
	</item>
</rss>
