<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>WAV in dat file trouble using with allegro</title>
		<link>http://www.allegro.cc/forums/view/586874</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 07 Aug 2006 03:47:24 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have been brushing up on my programming skills for the fun of it and it was either QBASIC or C/C++ and ALLEGRO.  Well as you guessed I went with ALLEGRO.  I went through an old program that I created called FallingBall and have added sounds and new graphics.  I placed everthing inside a DAT file.  with out the DAT file I can load everthing but inside the DAT file I can only load my background.</p><p>I am having problems with getting the wav file out and BMP&#39;s where I need to Grabframe.</p><p>Here is the BMP sides</p><div class="source-code snippet"><div class="inner"><pre>     temp <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">"ball.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
     <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">6</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
         ball<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp,<span class="n">17</span>,<span class="n">17</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">1</span>,n<span class="k2">)</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>temp<span class="k2">)</span><span class="k2">;</span>
     temp <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">"explode.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
     <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">6</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
         explode<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp,<span class="n">17</span>,<span class="n">17</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">1</span>,n<span class="k2">)</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>temp<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

for the WAV</p><div class="source-code snippet"><div class="inner"><pre>sounds<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_wav" target="_blank"><span class="a">load_wav</span></a><span class="k2">(</span><span class="s">"explode.wav"</span><span class="k2">)</span><span class="k2">;</span>            
sounds<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_wav" target="_blank"><span class="a">load_wav</span></a><span class="k2">(</span><span class="s">"explode2.wav"</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

simple stuff just can not get either from a dat file
</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#define BACKGROUND_BMP                   1        /* BMP  */</span>
<span class="p">#define BALL_BMP                         2        /* BMP  */</span>
<span class="p">#define BACKGROUND2_BMP                  0        /* BMP  */</span>
<span class="p">#define EXPLODE2_WAV                     3        /* WAV  */</span>
<span class="p">#define EXPLODE_WAV                      4        /* WAV  */</span>
</pre></div></div><p>

Also I have searched the forums and the examples seem to not be working.<br />if anyone would need source code in full I can easily link from my website the newest version.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 09:07:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Would you mind showing your code for loading from the dat file? Here&#39;s an example, if it helps any:
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">// Do this once to load the entire datafile, keep the datafile variable around</span>
<a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>datafile <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"data.dat"</span><span class="k2">)</span><span class="k2">;</span>

<span class="c">// Example of how to get something out of the datafile</span>
sounds<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> datafile<span class="k2">[</span>EXPLODE_WAV<span class="k2">]</span>.dat<span class="k2">;</span>

<span class="c">// At the end of your program</span>
<a href="http://www.allegro.cc/manual/unload_datafile" target="_blank"><span class="a">unload_datafile</span></a><span class="k2">(</span>datafile<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

I don&#39;t use datafiles, so please excuse me if any of that is incorrect.</p><p>Oh and remember not to destroy the bitmaps, audio, etc you get out of the datafile. unload_datafile will take care of all the cleanup.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Sun, 06 Aug 2006 11:22:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>in 3 different files since I keep everything separated so it may look funny set out but this is it put together.</p><p>You can get the <a href="http://www.geocities.com/jensen_305/FallingBall1.7r.zip">FallingBall</a> program by clicking FallingBall which is full of the source and compiled version of the game. That is my version 1.7r that is exactly what I am working with all sounds backgrounds ball are in that data file, explosion graphic excluded.</p><p>By the way I am not an artist so if you run the little game graphics will not be great but the game is coming along.</p><p>When I add the code to look like this<br /><span class="source-code"><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>data<span class="k2">;</span></span><br />.<br />.<br /><span class="source-code"> data <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"falling.dat"</span><span class="k2">)</span><span class="k2">;</span></span>
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> volume <span class="k3">=</span> <span class="n">64</span><span class="k2">;</span>
<span class="k1">int</span> pan <span class="k3">=</span> <span class="n">128</span><span class="k2">;</span>
<span class="k1">int</span> pitch <span class="k3">=</span> <span class="n">2000</span><span class="k2">;</span>
</pre></div></div><p>
<span class="source-code">sounds<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> data<span class="k2">[</span>EXPLODE_WAV<span class="k2">]</span>.dat<span class="k2">;</span></span><br />instead of this which loads out side of datafile (which I don&#39;t want)<br /><span class="source-code">sounds<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_wav" target="_blank"><span class="a">load_wav</span></a><span class="k2">(</span><span class="s">"explode.wav"</span><span class="k2">)</span><span class="k2">;</span></span><br />and I play the wav like this<br /><span class="source-code"><a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>sounds<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>, volume, pan, pitch, FALSE<span class="k2">)</span><span class="k2">;</span></span></p><p>I get a windows error right when the sound would apply.<br />FallingBall.c
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 17:01:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
sounds[1] = datafile[EXPLODE_WAV].dat;
</p></div></div><p> If you have <tt>DATAFILE *data;</tt> that should be<span class="source-code">sounds<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> data<span class="k2">[</span>EXPLODE_WAV<span class="k2">]</span>.dat<span class="k2">;</span></span> Also, how is sounds defined? It better not be <tt>SAMPLE *sounds[1]</tt>, or you&#39;ll have an array overflow...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kauhiz)</author>
		<pubDate>Sun, 06 Aug 2006 17:22:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Another typo found but not in the code itself just what I typed on the forum.</p><p>it is defined like<br /><span class="source-code"><a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span>sounds<span class="k2">[</span><span class="n">5</span><span class="k2">]</span><span class="k2">;</span></span></p><p>Should it not be? But what about the error I get when playing the sound from the data file</p><p>dat -a -t WAV falling.dat explode.wav</p><p>Is how the sounds were put in.  Don&#39;t know if that makes a difference.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 17:40:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The sounds define is ok, I just thought it was a bit odd that you used sounds[1] in the example, but nvm. When does it crash, loading or playing? For play_sample I&#39;d pass 0 for looping instead of FALSE, but that&#39;s just personal preference, it shouldn&#39;t matter, I guess. I can&#39;t think of anything else right now...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kauhiz)</author>
		<pubDate>Sun, 06 Aug 2006 17:56:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well first I will say that when you click a ball it explodes and plays a sound.  Everything loads and you start playing but as soon as you click a ball you get kicked out with a windows error with out the sound even starting.</p><p>Tried this aswell and didn&#39;t work</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>data<span class="k2">[</span>EXPLODE_WAV<span class="k2">]</span>.dat, volume, pan, pitch, FALSE<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

and this which I think is the samething just adding a line of code.</p><div class="source-code snippet"><div class="inner"><pre>sounds<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> data<span class="k2">[</span>EXPLODE_WAV<span class="k2">]</span>.dat<span class="k2">;</span>
<a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>sounds<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>, volume, pan, pitch, FALSE<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

and this which eliminates more lines of code.
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/load_wav" target="_blank"><span class="a">load_wav</span></a><span class="k2">(</span>data<span class="k2">[</span>EXPLODE_WAV<span class="k2">]</span>.dat<span class="k2">)</span>, volume, pan, pitch, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
but as well does not work but compiles perfectly but the old way works fine when playing the same file just not in a datafile.</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/load_wav" target="_blank"><span class="a">load_wav</span></a><span class="k2">(</span><span class="s">"explode.wav"</span><span class="k2">)</span>, volume, pan, pitch, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

I should add that either of the 4 ways compiles with 0 errors 0 warnings.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 18:01:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
play_sample(load_wav(data[EXPLODE_WAV].dat), volume, pan, pitch, 0);
</p></div></div><p>That has got to be wrong. I must admit that I&#39;m a bit rusty with samples, since I don&#39;t use allegro for sound. Hmm... where do you unload the datafile?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kauhiz)</author>
		<pubDate>Sun, 06 Aug 2006 18:18:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I unload the data file assuming I use it when I am just debugging here</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 "FallingBall.h"</span></td></tr><tr><td class="number">2</td><td><span class="p">#include "FallingBallSetup.h"</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">5</td><td><span class="k2">{</span></td></tr><tr><td class="number">6</td><td>    setup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>    loadsprites<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>    setupscreen<span class="k2">(</span><span class="k2">)</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>buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_video_bitmap" target="_blank"><span class="a">create_video_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_video_bitmap" target="_blank"><span class="a">create_video_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>    active_page <span class="k3">=</span> buffer2<span class="k2">;</span></td></tr><tr><td class="number">12</td><td>    startup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>    setupsound<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>    </td></tr><tr><td class="number">15</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="k3">&amp;</span><span class="k3">&amp;</span> lives <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">16</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">17</td><td>        multicheck<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>        singlecheck<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>        movemouse<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>        mousehold<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>        drawback<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>        checkdead<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>        </td></tr><tr><td class="number">24</td><td>        <a href="http://www.allegro.cc/manual/show_video_bitmap" target="_blank"><span class="a">show_video_bitmap</span></a><span class="k2">(</span>active_page<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>        <span class="k1">if</span> <span class="k2">(</span>active_page <span class="k3">=</span><span class="k3">=</span> buffer<span class="k2">)</span></td></tr><tr><td class="number">26</td><td>         active_page <span class="k3">=</span> buffer2<span class="k2">;</span></td></tr><tr><td class="number">27</td><td>        <span class="k1">else</span></td></tr><tr><td class="number">28</td><td>           active_page <span class="k3">=</span> buffer<span class="k2">;</span>           </td></tr><tr><td class="number">29</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>active_page, <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><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</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">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>        </td></tr><tr><td class="number">32</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">33</td><td>    <a href="http://www.allegro.cc/manual/unload_datafile" target="_blank"><span class="a">unload_datafile</span></a><span class="k2">(</span>data<span class="k2">)</span><span class="k2">;</span>  <span class="c">// &lt;----------unloads here when I use it.</span></td></tr><tr><td class="number">34</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer2<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span><span class="k3">*</span>explode<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>background<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>active_page<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span><span class="k3">*</span>ball<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">41</td><td>    </td></tr><tr><td class="number">42</td><td>    exitall<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">43</td><td><span class="k2">}</span></td></tr><tr><td class="number">44</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>

that is the main program FallingBall.c
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 18:28:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
play_sample(load_wav(&quot;explode.wav&quot;), volume, pan, pitch, 0);
</p></div></div><p>
That&#39;s a nasty memory leak.</p><p>And where&#39;s the rest of the code? It&#39;s not in the header files, I hope...</p><p>Oh, and is the datafile header up to date?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Sun, 06 Aug 2006 18:54:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes I just restarted the program after a 2 year stop.  Everything down to out dated code has been redone.</p><p>textprintf to textprintf_ex that kind of thing.</p><p>oh yes its all in headerfiles 2 to be exact...but then this isn&#039;t about how everything is set up and the memory that may or may not leak.  Sorry but I am trying to focus on one problem at a time.</p><p>the 3rd post from the top has a link that you can dl to get the answers</p><p>but you want all of it then ok</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="c">//#include "FallingBall.h"</span>
<span class="number">   2</span><span class="p">#include "allegro.h"</span>
<span class="number">   3</span><span class="p">#define MODE GFX_AUTODETECT_FULLSCREEN</span>
<span class="number">   4</span><span class="p">#define WIDTH 640</span>
<span class="number">   5</span><span class="p">#define HEIGHT 480</span>
<span class="number">   6</span><span class="p">#define BallSpeed 1</span>
<span class="number">   7</span><span class="p">#define BallSize 16//((SCREEN_W + SCREEN_H) / 10) / 10</span>
<span class="number">   8</span><span class="p">#define MouseSpeed 2</span>
<span class="number">   9</span><span class="p">#define BACKGROUND_BMP                   1        /* BMP  */</span>
<span class="number">  10</span><span class="p">#define BALL_BMP                         2        /* BMP  */</span>
<span class="number">  11</span><span class="p">#define BACKGROUND2_BMP                  0        /* BMP  */</span>
<span class="number">  12</span><span class="p">#define EXPLODE2_WAV                     3        /* WAV  */</span>
<span class="number">  13</span><span class="p">#define EXPLODE_WAV                      4        /* WAV  */</span>
<span class="number">  14</span>
<span class="number">  15</span><span class="k1">struct</span> tagBall <span class="k2">{</span>
<span class="number">  16</span>    <span class="k1">int</span> x<span class="k2">;</span>
<span class="number">  17</span>    <span class="k1">int</span> y<span class="k2">;</span>
<span class="number">  18</span>    <span class="k1">int</span> speed<span class="k2">;</span>
<span class="number">  19</span>    <span class="k1">int</span> color<span class="k2">;</span>
<span class="number">  20</span>    <span class="k1">int</span> size<span class="k2">;</span>
<span class="number">  21</span><span class="k2">}</span>  Balls<span class="k2">[</span><span class="n">100</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  22</span><span class="k1">struct</span> expd <span class="k2">{</span>
<span class="number">  23</span>       <span class="k1">int</span> x<span class="k2">;</span>
<span class="number">  24</span>       <span class="k1">int</span> y<span class="k2">;</span>
<span class="number">  25</span>       <span class="k1">int</span> proc<span class="k2">;</span>
<span class="number">  26</span><span class="k2">}</span> explodes<span class="k2">[</span><span class="n">100</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  27</span><span class="k1">struct</span> Floor <span class="k2">{</span>
<span class="number">  28</span>    <span class="k1">int</span> y<span class="k2">;</span>
<span class="number">  29</span><span class="k2">}</span> Floors<span class="k2">;</span> 
<span class="number">  30</span><span class="k1">int</span> i<span class="k2">;</span>
<span class="number">  31</span><span class="k1">int</span> r<span class="k2">;</span>
<span class="number">  32</span><span class="k1">int</span> expd<span class="k2">;</span>
<span class="number">  33</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>explode<span class="k2">[</span><span class="n">9</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  34</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>ball<span class="k2">[</span><span class="n">9</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  35</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>background<span class="k2">;</span>
<span class="number">  36</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>active_page<span class="k2">;</span>
<span class="number">  37</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp<span class="k2">;</span> 
<span class="number">  38</span><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>data<span class="k2">;</span>
<span class="number">  39</span><span class="k1">int</span> expact<span class="k2">;</span>
<span class="number">  40</span><span class="k1">int</span> speed<span class="k2">;</span>
<span class="number">  41</span><span class="k1">int</span> mouseh<span class="k2">;</span>
<span class="number">  42</span><span class="k1">int</span> n<span class="k2">;</span>
<span class="number">  43</span><span class="k1">int</span> gameover <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  44</span><span class="k1">int</span> dead<span class="k2">[</span><span class="n">100</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  45</span><span class="k1">int</span> lives <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  46</span><span class="k1">int</span> score <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  47</span><span class="k1">int</span> n<span class="k2">;</span>
<span class="number">  48</span><span class="k1">int</span> mousex<span class="k2">;</span>
<span class="number">  49</span><span class="k1">int</span> mousey<span class="k2">;</span>
<span class="number">  50</span><a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span>sounds<span class="k2">[</span><span class="n">5</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  51</span><span class="k1">int</span> volume <span class="k3">=</span> <span class="n">64</span><span class="k2">;</span>
<span class="number">  52</span><span class="k1">int</span> pan <span class="k3">=</span> <span class="n">128</span><span class="k2">;</span>
<span class="number">  53</span><span class="k1">int</span> pitch <span class="k3">=</span> <span class="n">2000</span><span class="k2">;</span>
<span class="number">  54</span><span class="k1">void</span> mousehold<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  55</span><span class="k1">void</span> dropball<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  56</span><span class="k1">void</span> moveball<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span><span class="k1">void</span> movefloor<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  58</span><span class="k1">void</span> checkdead<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span><span class="k1">void</span> getinput<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span><span class="k1">void</span> setupscreen<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  61</span><span class="k1">void</span> startup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span><span class="k1">void</span> multicheck<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span><span class="k1">void</span> singlecheck<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span><span class="k1">void</span> exitall<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  65</span><span class="k1">void</span> setup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  66</span><span class="k1">void</span> setupsound<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  67</span><span class="c">//#include "FallingBallSetup.h"</span>
<span class="number">  68</span><span class="k1">void</span> setup<span class="k2">(</span><span class="k2">)</span>
<span class="number">  69</span><span class="k2">{</span>
<span class="number">  70</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="k2">;</span>
<span class="number">  71</span>     <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>
<span class="number">  72</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="k2">;</span>
<span class="number">  73</span>     <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>
<span class="number">  74</span>     <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>
<span class="number">  75</span>     <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>
<span class="number">  76</span><span class="k2">}</span>
<span class="number">  77</span>
<span class="number">  78</span><span class="k1">void</span> setupsound<span class="k2">(</span><span class="k2">)</span>
<span class="number">  79</span><span class="k2">{</span>
<span class="number">  80</span>     <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/install_sound" target="_blank"><span class="a">install_sound</span></a><span class="k2">(</span>DIGI_AUTODETECT, MIDI_NONE, <span class="s">""</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  81</span>     <span class="k2">{</span>
<span class="number">  82</span>        <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">"Error initilizing the sound system"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>        <span class="k1">return</span><span class="k2">;</span>
<span class="number">  84</span>     <span class="k2">}</span>
<span class="number">  85</span>     sounds<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_wav" target="_blank"><span class="a">load_wav</span></a><span class="k2">(</span><span class="s">"explode.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>                 
<span class="number">  87</span>     sounds<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_wav" target="_blank"><span class="a">load_wav</span></a><span class="k2">(</span><span class="s">"explode2.wav"</span><span class="k2">)</span><span class="k2">;</span>             
<span class="number">  88</span><span class="k2">}</span>
<span class="number">  89</span>
<span class="number">  90</span><span class="k1">void</span> drawback<span class="k2">(</span><span class="k2">)</span>
<span class="number">  91</span><span class="k2">{</span>
<span class="number">  92</span>     <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>active_page,<span class="n">0</span>,Floors.y,<a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</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">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>     <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>active_page,<a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>,<span class="n">0</span>,<span class="n">0</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="k3">-</span><span class="n">1</span>,<span class="s">"Lives: %i Score: %i"</span>,lives,score<span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</span>     <span class="c">//show_video_bitmap(active_page);</span>
<span class="number">  95</span><span class="k2">}</span>
<span class="number">  96</span>
<span class="number">  97</span><span class="k1">void</span> movemouse<span class="k2">(</span><span class="k2">)</span>
<span class="number">  98</span><span class="k2">{</span>
<span class="number">  99</span>    <a href="http://www.allegro.cc/manual/circle" target="_blank"><span class="a">circle</span></a><span class="k2">(</span>active_page,<a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a>,<a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a>,BallSize <span class="k3">/</span> <span class="n">5</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">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 100</span><span class="k2">}</span>
<span class="number"> 101</span>
<span class="number"> 102</span><span class="k1">void</span> mousehold<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 103</span><span class="k2">{</span>
<span class="number"> 104</span>    <a href="http://www.allegro.cc/manual/set_mouse_range" target="_blank"><span class="a">set_mouse_range</span></a><span class="k2">(</span><span class="n">0</span> <span class="k3">+</span> <span class="k2">(</span>BallSize <span class="k3">/</span> <span class="n">5</span><span class="k2">)</span>,<span class="n">0</span> <span class="k3">+</span> <span class="k2">(</span>BallSize<span class="k2">)</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="k2">(</span>BallSize <span class="k3">/</span> <span class="n">5</span><span class="k2">)</span>,Floors.y <span class="k3">-</span> <span class="k2">(</span>BallSize <span class="k3">/</span> <span class="n">5</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 105</span>    <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="k3">&amp;</span><span class="k3">&amp;</span> mouseh <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">50</span><span class="k2">)</span>
<span class="number"> 106</span>    <span class="k2">{</span>
<span class="number"> 107</span>        mouseh<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 108</span>        <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 109</span>    <span class="k2">}</span>    
<span class="number"> 110</span>    <span class="k1">if</span> <span class="k2">(</span>mouseh <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">50</span><span class="k2">)</span>
<span class="number"> 111</span>    <span class="k2">{</span>
<span class="number"> 112</span>        mousex <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>
<span class="number"> 113</span>        mousey <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>
<span class="number"> 114</span>        <span class="k1">while</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="number"> 115</span>        <span class="k2">{</span>
<span class="number"> 116</span>            <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>,<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="k3">-</span> <span class="k2">(</span><span class="n">4</span><span class="k3">*</span><span class="n">19</span><span class="k2">)</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">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span>,<span class="k3">-</span><span class="n">1</span>,<span class="s">"Dont Hold The Mouse"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>        <span class="k2">}</span>    
<span class="number"> 118</span>        <a href="http://www.allegro.cc/manual/position_mouse" target="_blank"><span class="a">position_mouse</span></a><span class="k2">(</span>mousex,mousey<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</span>    <span class="k2">}</span>    
<span class="number"> 120</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</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="number"> 121</span>    <span class="k2">{</span>
<span class="number"> 122</span>        mouseh <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 123</span>    <span class="k2">}</span>    
<span class="number"> 124</span><span class="k2">}</span> 
<span class="number"> 125</span>   
<span class="number"> 126</span><span class="k1">void</span> moveball<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 127</span><span class="k2">{</span>
<span class="number"> 128</span>    <span class="c">//Test to see where actual click area is. Made due to an error found in the program.</span>
<span class="number"> 129</span>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&gt;</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.x <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&lt;</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.x <span class="k3">+</span> BallSize <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">&gt;</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">&lt;</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">+</span> BallSize<span class="k2">)</span>
<span class="number"> 130</span>    <a href="http://www.allegro.cc/manual/rect" target="_blank"><span class="a">rect</span></a><span class="k2">(</span>active_page,Balls<span class="k2">[</span>n<span class="k2">]</span>.x,Balls<span class="k2">[</span>n<span class="k2">]</span>.y,Balls<span class="k2">[</span>n<span class="k2">]</span>.x <span class="k3">+</span> BallSize,Balls<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">+</span> BallSize,<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">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 131</span>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>active_page,ball<span class="k2">[</span>i<span class="k3">/</span><span class="n">2</span><span class="k2">]</span>,Balls<span class="k2">[</span>n<span class="k2">]</span>.x,Balls<span class="k2">[</span>n<span class="k2">]</span>.y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</span>    Balls<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">=</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">+</span> <span class="k2">(</span>BallSpeed<span class="k2">)</span><span class="k2">;</span><span class="c">//Balls.speed;</span>
<span class="number"> 133</span>    <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 134</span><span class="k2">}</span>
<span class="number"> 135</span>
<span class="number"> 136</span><span class="k1">void</span> exploded<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number"> 137</span><span class="k2">{</span>
<span class="number"> 138</span>     <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>active_page,explode<span class="k2">[</span>expd<span class="k3">/</span><span class="n">4</span><span class="k2">]</span>,explodes<span class="k2">[</span>r<span class="k2">]</span>.x,explodes<span class="k2">[</span>r<span class="k2">]</span>.y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>     expd<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 140</span><span class="k2">}</span>
<span class="number"> 141</span>
<span class="number"> 142</span><span class="k1">void</span> checkdead<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 143</span><span class="k2">{</span>
<span class="number"> 144</span>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&gt;</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.x <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&lt;</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.x <span class="k3">+</span> BallSize <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">&gt;</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.y  <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">&lt;</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">+</span> BallSize <span class="k3">&amp;</span><span class="k3">&amp;</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="number"> 145</span>    <span class="k2">{</span>
<span class="number"> 146</span>        <span class="c">//exploded();      </span>
<span class="number"> 147</span>        <span class="c">// going to use this in the explosion which is not yet set up</span>
<span class="number"> 148</span>        expd <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 149</span>        explodes<span class="k2">[</span>n<span class="k2">]</span>.x <span class="k3">=</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.x<span class="k2">;</span>
<span class="number"> 150</span>        explodes<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">=</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.y<span class="k2">;</span>
<span class="number"> 151</span>        r <span class="k3">=</span> n<span class="k2">;</span>
<span class="number"> 152</span>        <a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>sounds<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>, volume, pan, pitch, FALSE<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 153</span>        exploded<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 154</span>        dead<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 155</span>        score <span class="k3">+</span><span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 156</span>        movefloor<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 157</span>    <span class="k2">}</span>       
<span class="number"> 158</span>    <span class="k1">if</span> <span class="k2">(</span>Balls<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">&gt;</span> Floors.y <span class="k3">-</span> BallSize<span class="k2">)</span>
<span class="number"> 159</span>    <span class="k2">{</span>
<span class="number"> 160</span>        expd <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 161</span>        explodes<span class="k2">[</span>n<span class="k2">]</span>.x <span class="k3">=</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.x<span class="k2">;</span>
<span class="number"> 162</span>        explodes<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">=</span> Balls<span class="k2">[</span>n<span class="k2">]</span>.y<span class="k2">;</span>
<span class="number"> 163</span>        r <span class="k3">=</span> n<span class="k2">;</span>
<span class="number"> 164</span>        <a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>sounds<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>, volume, pan, <span class="n">500</span>, FALSE<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 165</span>        exploded<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 166</span>        Balls<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">0</span> <span class="k3">+</span> BallSize<span class="k2">;</span>
<span class="number"> 167</span>        dropball<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 168</span>        <span class="c">//if (!key[KEY_ALT]) //Testing uses</span>
<span class="number"> 169</span>        lives--<span class="k2">;</span>
<span class="number"> 170</span>    <span class="k2">}</span>
<span class="number"> 171</span>    
<span class="number"> 172</span>    <span class="k1">if</span> <span class="k2">(</span>dead<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 173</span>    <span class="k2">{</span>
<span class="number"> 174</span>        dropball<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 175</span>        dead<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 176</span>    <span class="k2">}</span>    
<span class="number"> 177</span><span class="k2">}</span>
<span class="number"> 178</span>
<span class="number"> 179</span><span class="k1">void</span> movefloor<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 180</span><span class="k2">{</span>
<span class="number"> 181</span>    Floors.y <span class="k3">=</span> Floors.y <span class="k3">-</span> <span class="n">3</span><span class="k2">;</span>    
<span class="number"> 182</span><span class="k2">}</span>   
<span class="number"> 183</span> 
<span class="number"> 184</span><span class="k1">void</span> dropball<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 185</span><span class="k2">{</span>
<span class="number"> 186</span>    Balls<span class="k2">[</span>n<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">0</span> <span class="k3">+</span> BallSize<span class="k2">;</span>
<span class="number"> 187</span>    Balls<span class="k2">[</span>n<span class="k2">]</span>.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><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">16</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 188</span>    <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 189</span><span class="k2">}</span>    
<span class="number"> 190</span>
<span class="number"> 191</span><span class="k1">void</span> setupscreen<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 192</span><span class="k2">{</span>
<span class="number"> 193</span>    <span class="k1">int</span> ret <span class="k3">=</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>MODE, WIDTH, HEIGHT, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 194</span>    <span class="k1">if</span> <span class="k2">(</span>ret <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> 
<span class="number"> 195</span>    <span class="k2">{</span>
<span class="number"> 196</span>        <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</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>
<span class="number"> 197</span>        <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 198</span>    <span class="k2">}</span>
<span class="number"> 199</span><span class="k2">}</span> 
<span class="number"> 200</span>  
<span class="number"> 201</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>grabframe<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>source, <span class="k1">int</span> width, <span class="k1">int</span> height, <span class="k1">int</span> startx, <span class="k1">int</span> starty, <span class="k1">int</span> columns, <span class="k1">int</span> frame<span class="k2">)</span> 
<span class="number"> 202</span><span class="k2">{</span>
<span class="number"> 203</span>           <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp <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>width,height<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 204</span>           <span class="k1">int</span> x <span class="k3">=</span> startx <span class="k3">+</span> <span class="k2">(</span>frame <span class="k2">)</span> <span class="k3">*</span> width<span class="k2">;</span>
<span class="number"> 205</span>           <span class="c">//int y = starty + (frame ) * height;</span>
<span class="number"> 206</span>           <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>source,temp,x,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,width,height<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 207</span>           <span class="k1">return</span> temp<span class="k2">;</span>
<span class="number"> 208</span><span class="k2">}</span>     
<span class="number"> 209</span>        
<span class="number"> 210</span><span class="k1">void</span> loadsprites<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number"> 211</span><span class="k2">{</span>
<span class="number"> 212</span>     <span class="c">// Load our ball(s) into memory</span>
<span class="number"> 213</span>     temp <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">"ball.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 214</span>     <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">6</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 215</span>         ball<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp,<span class="n">17</span>,<span class="n">17</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">1</span>,n<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 216</span>     <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 217</span>     temp <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">"explode.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 218</span>     <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">6</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 219</span>         explode<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp,<span class="n">17</span>,<span class="n">17</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">1</span>,n<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 220</span>     <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 221</span>     
<span class="number"> 222</span><span class="k2">}</span>
<span class="number"> 223</span>
<span class="number"> 224</span><span class="k1">void</span> startup<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number"> 225</span><span class="k2">{</span>
<span class="number"> 226</span>    <a href="http://www.allegro.cc/manual/set_mouse_speed" target="_blank"><span class="a">set_mouse_speed</span></a><span class="k2">(</span>MouseSpeed,MouseSpeed<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 227</span>    Floors.y <span class="k3">=</span> <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">;</span>
<span class="number"> 228</span>    data <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"falling.dat"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 229</span>    <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_SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 230</span>    <span class="k2">{</span>
<span class="number"> 231</span>    <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>active_page,<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="k3">-</span> <span class="k2">(</span><span class="n">4</span><span class="k3">*</span><span class="n">19</span><span class="k2">)</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">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span>,<span class="k3">-</span><span class="n">1</span>,<span class="s">"Get Ready!!!"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 232</span>    <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>active_page,<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="k3">-</span> <span class="k2">(</span><span class="n">4</span><span class="k3">*</span><span class="n">19</span><span class="k2">)</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><span class="k3">+</span><span class="n">10</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="k3">-</span><span class="n">1</span>,<span class="s">"Press Space to Start!"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 233</span>    <a href="http://www.allegro.cc/manual/show_video_bitmap" target="_blank"><span class="a">show_video_bitmap</span></a><span class="k2">(</span>active_page<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 234</span>    <span class="k2">}</span>
<span class="number"> 235</span><span class="k2">}</span>
<span class="number"> 236</span>
<span class="number"> 237</span><span class="k1">void</span> multicheck<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number"> 238</span><span class="k2">{</span>
<span class="number"> 239</span>     <span class="c">/* Slows down the animation to half speed by allowing certain frames</span>
<span class="number"> 240</span><span class="c">           of the animation to be played more then once*/</span>
<span class="number"> 241</span>        <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>active_page,data<span class="k2">[</span>BACKGROUND2_BMP<span class="k2">]</span>.dat,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 242</span>        <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="k2">(</span>score<span class="k3">/</span><span class="n">100</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">1</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 243</span>        <span class="k2">{</span>
<span class="number"> 244</span>            checkdead<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 245</span>            moveball<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 246</span>        <span class="k2">}</span>
<span class="number"> 247</span><span class="k2">}</span>
<span class="number"> 248</span>
<span class="number"> 249</span><span class="k1">void</span> singlecheck<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 250</span><span class="k2">{</span>
<span class="number"> 251</span>     <span class="c">/* Slows down the animation to half speed by allowing certain frames</span>
<span class="number"> 252</span><span class="c">           of the animation to be played more then once*/</span>
<span class="number"> 253</span>     i<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 254</span>     <span class="k1">if</span> <span class="k2">(</span>i <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">12</span><span class="k2">)</span>
<span class="number"> 255</span>     <span class="k2">{</span>
<span class="number"> 256</span>        i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 257</span>     <span class="k2">}</span>
<span class="number"> 258</span>     <span class="k1">if</span> <span class="k2">(</span>expd <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">24</span><span class="k2">)</span>
<span class="number"> 259</span>     <span class="k2">{</span>
<span class="number"> 260</span>        expd <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 261</span>     <span class="k2">}</span>
<span class="number"> 262</span>     <span class="k1">if</span> <span class="k2">(</span>expd <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 263</span>     <span class="k2">{</span>
<span class="number"> 264</span>        exploded<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 265</span>     <span class="k2">}</span>
<span class="number"> 266</span><span class="k2">}</span>
<span class="number"> 267</span>
<span class="number"> 268</span><span class="k1">void</span> exitall<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 269</span><span class="k2">{</span>
<span class="number"> 270</span>     <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">0</span>,<span class="n">10</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="k3">-</span><span class="n">1</span>,<span class="s">"Last Score was %i Press ESC to Exit"</span>,score<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 271</span>     <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><span class="k2">;</span>
<span class="number"> 272</span>     <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>
<span class="number"> 273</span><span class="k2">}</span>
<span class="number"> 274</span>
<span class="number"> 275</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 276</span><span class="k2">{</span>
<span class="number"> 277</span>    setup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 278</span>    loadsprites<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 279</span>    setupscreen<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 280</span>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_video_bitmap" target="_blank"><span class="a">create_video_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 281</span>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_video_bitmap" target="_blank"><span class="a">create_video_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 282</span>    active_page <span class="k3">=</span> buffer2<span class="k2">;</span>
<span class="number"> 283</span>    startup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 284</span>    setupsound<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 285</span>    
<span class="number"> 286</span>    <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="k3">&amp;</span><span class="k3">&amp;</span> lives <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 287</span>    <span class="k2">{</span>
<span class="number"> 288</span>        multicheck<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 289</span>        singlecheck<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 290</span>        movemouse<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 291</span>        mousehold<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 292</span>        drawback<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 293</span>        checkdead<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 294</span>        
<span class="number"> 295</span>        <a href="http://www.allegro.cc/manual/show_video_bitmap" target="_blank"><span class="a">show_video_bitmap</span></a><span class="k2">(</span>active_page<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 296</span>        <span class="k1">if</span> <span class="k2">(</span>active_page <span class="k3">=</span><span class="k3">=</span> buffer<span class="k2">)</span>
<span class="number"> 297</span>         active_page <span class="k3">=</span> buffer2<span class="k2">;</span>
<span class="number"> 298</span>        <span class="k1">else</span>
<span class="number"> 299</span>           active_page <span class="k3">=</span> buffer<span class="k2">;</span>           
<span class="number"> 300</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>active_page, <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><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 301</span>        <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 302</span>        
<span class="number"> 303</span>    <span class="k2">}</span>
<span class="number"> 304</span>    <a href="http://www.allegro.cc/manual/unload_datafile" target="_blank"><span class="a">unload_datafile</span></a><span class="k2">(</span>data<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 305</span>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 306</span>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer2<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 307</span>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span><span class="k3">*</span>explode<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 308</span>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>background<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 309</span>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>active_page<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 310</span>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 311</span>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span><span class="k3">*</span>ball<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 312</span>    
<span class="number"> 313</span>    exitall<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 314</span><span class="k2">}</span>
<span class="number"> 315</span><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>
</div></div><p>

[url <a href="http://www.geocities.com/jensen_305/FallingBall1.7r.zip]FallingBall[/url">http://www.geocities.com/jensen_305/FallingBall1.7r.zip]FallingBall[/url</a>] ClickMe
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 19:07:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s some ugly code, but what the hell are you doing calling destroy_bitmap on *explode and *ball? That isn&#39;t going to work right.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 06 Aug 2006 20:07:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ugly and works.  <br />don&#39;t know most of this code is 2 years old and if it is not broke don&#39;t fix it or rewrite it is what I heard.</p><p>But eventually I will end up rewriting the entire thing but for now just want to get this part setup.  That one thing at a time thing again sorry just dont want to get off the subject.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 20:16:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No. It only frees the first bitmap. I highly doubt it is doing what you think/want it to do.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 06 Aug 2006 20:17:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>so how can I play the wave from the datafile?</p><p>and</p><p>how do I destroy the entire thing? *ball
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 20:20:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You have to loop the bitmaps and destroy each one.</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> number_of_bitmaps_in_ball<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<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>ball<span class="k3">&lt;</span>i&gt;<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>


And to play a wave from a datafile, you have to make sure its loaded correctly and just play it.</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>data <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span>my datafile<span class="k2">)</span><span class="k2">;</span>
<span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>data<span class="k2">)</span>
    <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">"data file failed to load"</span><span class="k2">)</span><span class="k2">;</span>

<a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>MY_WAVE<span class="k2">]</span>.dat, volume, pan, pitch, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
unload_data_file<span class="k2">(</span>data<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 06 Aug 2006 20:25:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I inserted the </p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>EXPLODE_WAV<span class="k2">]</span>.dat, volume, pan, pitch, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

and got the same error.
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>data
.
.
data <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"falling.dat"</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

still not working.</p><p>get an error &quot;initializer element is not constant &quot; when used like
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>data <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"falling.dat"</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 20:38:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What is the error you get? Either the datafile isn&#39;t loading right, or the header file is out of date, referring to the wrong position in the datafile.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 06 Aug 2006 20:39:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I just added the WAV&#39;s and then -h the header out and put it up like such</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#define BACKGROUND_BMP                   1        /* BMP  */</span>
<span class="p">#define BALL_BMP                         2        /* BMP  */</span>
<span class="p">#define BACKGROUND2_BMP                  0        /* BMP  */</span>
<span class="p">#define EXPLODE2_WAV                     3        /* WAV  */</span>
<span class="p">#define EXPLODE_WAV                      4        /* WAV  */</span>
</pre></div></div><p>

let me start the dat file from scratch.</p><p>BMP&#39;s are loaded like this<br />dat -a -t BMP -bpp 16 falling.dat ball.bmp</p><p>WAV&#39;s are loaded like this<br />dat -a -t WAV falling.dat explode.wav</p><p>anything wrong?</p><p>here is the output I get from -l falling.dat</p><div class="source-code snippet"><div class="inner"><pre>C:\Dev-Cpp\bin&gt;dat <span class="k3">-</span>l falling.dat
Reading falling.dat
<span class="k3">-</span> BMP  <span class="k3">-</span> BACKGROUND2_BMP              <span class="k3">-</span> bitmap <span class="k2">(</span><span class="n">640x480</span>, <span class="n">16</span> bit<span class="k2">)</span>
<span class="k3">-</span> BMP  <span class="k3">-</span> BACKGROUND_BMP               <span class="k3">-</span> bitmap <span class="k2">(</span><span class="n">640x480</span>, <span class="n">16</span> bit<span class="k2">)</span>
<span class="k3">-</span> BMP  <span class="k3">-</span> BALL_BMP                     <span class="k3">-</span> bitmap <span class="k2">(</span><span class="n">102x17</span>, <span class="n">16</span> bit<span class="k2">)</span>
<span class="k3">-</span> WAV  <span class="k3">-</span> EXPLODE2_WAV                 <span class="k3">-</span> binary data <span class="k2">(</span><span class="n">11600</span> bytes<span class="k2">)</span>
<span class="k3">-</span> WAV  <span class="k3">-</span> EXPLODE_WAV                  <span class="k3">-</span> binary data <span class="k2">(</span><span class="n">71902</span> bytes<span class="k2">)</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 21:13:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Samples are of type SAMP, not WAV.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Sun, 06 Aug 2006 21:23:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm will try</p><p>Well then it seems to work now.</p><p>one of those small mistakes.  Thanks a lot of all the help.</p><p>added
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/stop_sample" target="_blank"><span class="a">stop_sample</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>EXPLODE_WAV<span class="k2">]</span>.dat<span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/stop_sample" target="_blank"><span class="a">stop_sample</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>EXPLODE2_WAV<span class="k2">]</span>.dat<span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/unload_datafile" target="_blank"><span class="a">unload_datafile</span></a><span class="k2">(</span>data<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

since you can exit in the middle of a sound which gave an error just thought I would also have to stop the sounds before exit.  Thanks again.</p><p>also took the advice and added
</p><div class="source-code snippet"><div class="inner"><pre>    <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">6</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<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>explode<span class="k3">&lt;</span>i&gt;<span class="k2">)</span><span class="k2">;</span>
    <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">6</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<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>ball<span class="k3">&lt;</span>i&gt;<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p> thanks for that to</p><p>now that the sound is there here is the second thing and I posted about this in 2004 having a problem grabbing from a datafile</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>grabframe<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>source, <span class="k1">int</span> width, <span class="k1">int</span> height, <span class="k1">int</span> startx, <span class="k1">int</span> starty, <span class="k1">int</span> columns, <span class="k1">int</span> frame<span class="k2">)</span> </td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>           <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp <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>width,height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>           <span class="k1">int</span> x <span class="k3">=</span> startx <span class="k3">+</span> <span class="k2">(</span>frame <span class="k2">)</span> <span class="k3">*</span> width<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>           <span class="c">//int y = starty + (frame ) * height;</span></td></tr><tr><td class="number">6</td><td>           <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>source,temp,x,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,width,height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>           <span class="k1">return</span> temp<span class="k2">;</span></td></tr><tr><td class="number">8</td><td><span class="k2">}</span>     </td></tr><tr><td class="number">9</td><td>.</td></tr><tr><td class="number">10</td><td>.</td></tr><tr><td class="number">11</td><td>temp <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">"ball.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</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">6</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">13</td><td>         ball<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp,<span class="n">17</span>,<span class="n">17</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">1</span>,n<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>     <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>     temp <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">"explode.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</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">6</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">17</td><td>         explode<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp,<span class="n">17</span>,<span class="n">17</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">1</span>,n<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>     <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

I am sure this can be edited the same way to pull from the datafile aswell but the same technique seems not to work with BITMAP instead of SAMPLE</p><p>i tried 
</p><div class="source-code snippet"><div class="inner"><pre>temp <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="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>EXPLODE_BMP<span class="k2">]</span>.dat, NULL<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
but that didn&#39;t seem to work on got this warning.<br />[Warning] passing arg 1 of `load_bitmap&#39; from incompatible pointer type </p><div class="source-code snippet"><div class="inner"><pre>     temp <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>data<span class="k2">[</span>EXPLODE_BMP<span class="k2">]</span>.dat, NULL<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
compiles but error right away
</p><div class="source-code snippet"><div class="inner"><pre>ball<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>EXPLODE_BMP<span class="k2">]</span>.dat,<span class="n">17</span>,<span class="n">17</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">1</span>,n<span class="k2">)</span><span class="k2">;</span>

<span class="k1">and</span> 

ball<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>data<span class="k2">[</span>EXPLODE_BMP<span class="k2">]</span>.dat,<span class="n">17</span>,<span class="n">17</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">1</span>,n<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
also give the same error or so it seems</p><p>If only the book &quot;Game Programming All in One&quot; talked more about datafiles then just 2 pages about using BMP&#39;s <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Enough programming for now back to my &quot;Sword of Truth&quot; series
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Sun, 06 Aug 2006 22:55:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You don&#39;t want to load the bitmap, as its already the bitmap. Just do mybitmap = (BITMAP *)data[EXLPODE].dat;</p><p>However, EXPLODE2_WAV is a WAV, not a bitmap, so good luck with that.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Mon, 07 Aug 2006 02:12:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm another instance of typing it wrong in the forum but either way point got across will try that and see what happens.</p><p>Well tried it and error right on start just like all the other attempts.</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>grabframe<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>source, <span class="k1">int</span> width, <span class="k1">int</span> height, <span class="k1">int</span> startx, <span class="k1">int</span> starty, <span class="k1">int</span> columns, <span class="k1">int</span> frame<span class="k2">)</span> 
<span class="k2">{</span>
           <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp <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>width,height<span class="k2">)</span><span class="k2">;</span>
           <span class="k1">int</span> x <span class="k3">=</span> startx <span class="k3">+</span> <span class="k2">(</span>frame <span class="k2">)</span> <span class="k3">*</span> width<span class="k2">;</span>
           <span class="c">//int y = starty + (frame ) * height;</span>
           <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>source,temp,x,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,width,height<span class="k2">)</span><span class="k2">;</span>
           <span class="k1">return</span> temp<span class="k2">;</span>
<span class="k2">}</span>     
.
.
temp <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>BALL_BMP<span class="k2">]</span>.dat<span class="k2">;</span><span class="c">//load_bitmap("ball.bmp",NULL);</span>
     <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">6</span><span class="k2">;</span>n<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
         ball<span class="k2">[</span>n<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp,<span class="n">17</span>,<span class="n">17</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">1</span>,n<span class="k2">)</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>temp<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

I am starting to think it is the data file that has something wrong with it again like how I did the sound.</p><p>dat -a -t BMP -bpp 16 falling.dat ball.bmp</p><p>is what is used to put it in side the file.</p><p>But I noticed -g x y w h</p><p>NOTE<br />I fixed the problem by putting the load_datafile command before all the loading <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CIRCLE)</author>
		<pubDate>Mon, 07 Aug 2006 03:47:24 +0000</pubDate>
	</item>
</rss>
