<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Forward declaration???</title>
		<link>http://www.allegro.cc/forums/view/587732</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 26 Sep 2006 23:38:39 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>#include &lt;allegro.h&gt;</p><p>using namespace std;</p><p>class Planet;</p><p>#define screen_w 1024<br />#define screen_h 768</p><p>BITMAP *earth;<br />BITMAP *buffer;</p><p>void show(Planet* thing)<br />{<br />    clear_to_color(buffer, makecol(0, 0, 255));<br />    draw_sprite(buffer, earth, thing-&gt;x-32, thing-&gt;y-32);<br />    acquire_screen();<br />    draw_sprite(screen, buffer, 0, 0);<br />    rest(5);<br />    readkey();<br />};</p><p>class Planet<br />{<br />    public:<br />       int x, y;<br />       Planet()<br />       {<br />          x=(screen_w/2)-(earth-&gt;w/2);<br />          y=(screen_h/2)-(earth-&gt;h/2);<br />       };<br />};</p><p>int main()<br />{<br />    allegro_init();<br />    install_keyboard();<br />    set_color_depth(16);<br />    set_gfx_mode(GFX_AUTODETECT, screen_w, screen_h, 0, 0);<br />    earth=load_bitmap(&quot;earth.bmp&quot;, NULL);<br />    buffer=create_bitmap(screen_w, screen_h);<br />    clear_to_color(buffer, makecol(0, 0, 255));<br />    Planet jord;<br />    show(&amp;jord);<br />    destroy_bitmap(buffer);<br />    destroy_bitmap(earth);<br />    return 0;<br />}</p><p>END_OF_MAIN();</p><p>Compiler error:  In function `void show(Planet*)&#39;:<br />              17 invalid use of undefined type `struct Planet&#39; <br />               5 forward declaration of `struct Planet&#39; <br />              17 invalid use of undefined type `struct Planet&#39; <br />               5 forward declaration of `struct Planet&#39; </p><p>Can someone help me make this compile.. I have already forward declared it at the beginning of the file.. thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (affeheimer)</author>
		<pubDate>Tue, 26 Sep 2006 00:16:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This topic ought to be in programing questions, not here. As well use Mockup to enlight syntax.</p><p>Don&#39;t know C++ but I think you&#39;re treating Planet as a struct instead of a class. Do not use the arrow &#39;<i>-&gt;</i>&#39;, I think the dot &#39;<i>.</i>&#39; is used to reference object&#39;s routines or attributes. Anyway there are semicolons after function&#39;s closing braces and you do not release the screen.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Maikol)</author>
		<pubDate>Tue, 26 Sep 2006 02:01:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>For an access of a member of <tt>Planet</tt>, the compiler needs the full type definition, so a forward declaration won&#39;t do in your case (mind the <tt>thing-&gt;x</tt>).</p><p>The &quot;arrow&quot; <tt>-&gt;</tt> is just fine. Now that <tt>thing</tt> is passed as pointer, you have to dereference it first to get to its members. Dereference with <tt>*</tt>, access with <tt>.</tt> - you&#39;d have <tt>(*thing).</tt>, which can be written shorter as <tt>thing-&gt;</tt></p><p>Anyway, looks like <tt>show</tt> is in fact a method of <tt>Planet</tt>, so I suggest you also make that syntactically clear by putting it into the class declaration. Thus, you end up with:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">class</span> Planet</td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>public:</td></tr><tr><td class="number">4</td><td>  <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>  Planet<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">6</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">7</td><td>    x<span class="k3">=</span><span class="k2">(</span>screen_w<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span><span class="k2">(</span>earth-&gt;w<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>    y<span class="k3">=</span><span class="k2">(</span>screen_h<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span><span class="k2">(</span>earth-&gt;h<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>  <span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td>  <span class="k1">void</span> show<span class="k2">(</span><span class="c">/*Planet* thing*/</span><span class="k2">)</span></td></tr><tr><td class="number">12</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">13</td><td>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, earth, this-&gt;x-32, this-&gt;y-32<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>    <a href="http://www.allegro.cc/manual/acquire_screen" target="_blank"><span class="a">acquire_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, buffer, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</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">5</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>    <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td><span class="k2">}</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

The added benefit is that the compiler won&#39;t complain, and you don&#39;t need any forward declarations.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Indeterminatus)</author>
		<pubDate>Tue, 26 Sep 2006 03:30:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>There are many reasons why the code doesn&#39;t work, but forward declarations are there mainly to avoid multiple #include statements header files.</p><p>Basically, move your class definition to it&#39;s own header file, or put the class at the top of the file. But you should really think abour re-organising your code to be more object oriented.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Tue, 26 Sep 2006 03:45:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>okay tried moving the class definition to a header file, and changing a few other things...</p><p>Main.cpp
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include "Planet.h"</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="k1">class</span> Planet<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="p">#define screen_w 1024</span></td></tr><tr><td class="number">9</td><td><span class="p">#define screen_h 768</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>earth<span class="k2">;</span></td></tr><tr><td class="number">12</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="k2">;</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td><span class="k1">int</span> main<span class="k2">(</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>    <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>    <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>    <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT, screen_w, screen_h, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>    earth<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">"earth.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>    buffer<span class="k3">=</span><a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span>screen_w, screen_h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>    Planet jord<span class="k2">;</span></td></tr><tr><td class="number">25</td><td>    jord.show<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</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">27</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>earth<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>    <span class="k1">delete</span> jord<span class="k2">;</span></td></tr><tr><td class="number">29</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>&#160;</td></tr><tr><td class="number">32</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><span class="k2">;</span></td></tr></tbody></table></div></div><p>

And this is the class header:<br />Planet.h:
</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 "Main.cpp"</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">class</span> Planet</td></tr><tr><td class="number">4</td><td><span class="k2">{</span></td></tr><tr><td class="number">5</td><td>    public:</td></tr><tr><td class="number">6</td><td>       <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>       Planet<span class="k2">(</span><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>          x<span class="k3">=</span><span class="k2">(</span>screen_w<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span><span class="k2">(</span>earth-&gt;w<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>          y<span class="k3">=</span><span class="k2">(</span>screen_h<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span><span class="k2">(</span>earth-&gt;h<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>       <span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>       <span class="k1">void</span> show<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span></td></tr><tr><td class="number">13</td><td>       <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>       <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>       <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, earth, x-32, y-32<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>       <a href="http://www.allegro.cc/manual/acquire_screen" target="_blank"><span class="a">acquire_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>       <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, buffer, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>       <a href="http://www.allegro.cc/manual/release_screen" target="_blank"><span class="a">release_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</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">5</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>       <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>       <span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td><span class="k2">}</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

Now when I compile it gets stuck and never finish.. When I click cancel I get a compiler log like this:<br />In file included from C:\Documents and Settings\Søren\Skrivebord\Project/Main.cpp:2,<br />                 from C:\Documents and Settings\Søren\Skrivebord\Project/Planet.h:1,<br />                 from C:\Documents and Settings\Søren\Skrivebord\Project/Main.cpp:2,<br />                 from C:\Documents and Settings\Søren\Skrivebord\Project/Planet.h:1,</p><p>And the list goes on...</p><p>And how do I make the x and y integer in my class go over to my function???</p><p>By the way I am using Dev-C++</p><p>thx. Sorry for the large post
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (affeheimer)</author>
		<pubDate>Tue, 26 Sep 2006 22:17:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why on earth are you including the Cpp file in the header?<br />That causes an &quot;endless loop&quot;...<br />There are other things wrong too, but that should be the big one.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jonatan Hedborg)</author>
		<pubDate>Tue, 26 Sep 2006 22:58:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It makes a loop?? of course.. Thanks. Think my mind froze for a minute..</p><p>Just made it work.. But I think that there are a lot of unnecessary code that could be changed to be more compact??? Any suggestions??? here my my new code:</p><p>Main.cpp
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include "Planet.h"</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="k1">class</span> Planet<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="k1">const</span> <span class="k1">int</span> screen_w<span class="k3">=</span><span class="n">1024</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td><span class="k1">const</span> <span class="k1">int</span> screen_h<span class="k3">=</span><span class="n">768</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>earth<span class="k2">;</span></td></tr><tr><td class="number">12</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="k2">;</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td><span class="k1">void</span> show<span class="k2">(</span>Planet<span class="k3">*</span> thing<span class="k2">)</span></td></tr><tr><td class="number">15</td><td>       <span class="k2">{</span></td></tr><tr><td class="number">16</td><td>       <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>       <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, earth, thing-&gt;x-32, thing-&gt;y-32<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>       <a href="http://www.allegro.cc/manual/acquire_screen" target="_blank"><span class="a">acquire_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>       <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, buffer, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>       <a href="http://www.allegro.cc/manual/release_screen" target="_blank"><span class="a">release_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</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">5</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>       <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>       <span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>       </td></tr><tr><td class="number">25</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">26</td><td><span class="k2">{</span></td></tr><tr><td class="number">27</td><td>    <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>    <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>    <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</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/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT, screen_w, screen_h, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>    earth<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">"earth.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>    buffer<span class="k3">=</span><a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span>screen_w, screen_h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>    Planet jord<span class="k2">;</span></td></tr><tr><td class="number">35</td><td>    show<span class="k2">(</span><span class="k3">&amp;</span>jord<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>buffer<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>earth<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>    <span class="k1">delete</span> <span class="k3">&amp;</span>jord<span class="k2">;</span></td></tr><tr><td class="number">39</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">41</td><td>&#160;</td></tr><tr><td class="number">42</td><td><a href="http://www.allegro.cc/manual/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></td></tr></tbody></table></div></div><p>

And the header file:<br />Planet.h
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">extern</span> <span class="k1">const</span> <span class="k1">int</span> screen_w<span class="k2">;</span></td></tr><tr><td class="number">2</td><td><span class="k1">extern</span> <span class="k1">const</span> <span class="k1">int</span> screen_h<span class="k2">;</span></td></tr><tr><td class="number">3</td><td><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> earth<span class="k2">;</span></td></tr><tr><td class="number">4</td><td><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> buffer<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="k1">class</span> Planet</td></tr><tr><td class="number">7</td><td><span class="k2">{</span></td></tr><tr><td class="number">8</td><td>    public:</td></tr><tr><td class="number">9</td><td>       <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>       Planet<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">11</td><td>       <span class="k2">{</span></td></tr><tr><td class="number">12</td><td>          x<span class="k3">=</span><span class="k2">(</span>screen_w<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span><span class="k2">(</span>earth-&gt;w<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>          y<span class="k3">=</span><span class="k2">(</span>screen_h<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span><span class="k2">(</span>earth-&gt;h<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>       <span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>       <span class="k1">void</span> show<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y<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>       <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>       <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, earth, x-32, y-32<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>       <a href="http://www.allegro.cc/manual/acquire_screen" target="_blank"><span class="a">acquire_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>       <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, buffer, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>       <a href="http://www.allegro.cc/manual/release_screen" target="_blank"><span class="a">release_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</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">5</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>       <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>       <span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td><span class="k2">}</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (affeheimer)</author>
		<pubDate>Tue, 26 Sep 2006 23:08:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Remove everything before int main (except #include &quot;Planet.h&quot;) in the Main.cpp file.</p><p>Planet.h
</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 "allegro.h"</span></td></tr><tr><td class="number">2</td><td><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>earth<span class="k2">;</span></td></tr><tr><td class="number">5</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="k2">;</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td><span class="k1">class</span> Planet</td></tr><tr><td class="number">8</td><td><span class="k2">{</span></td></tr><tr><td class="number">9</td><td>    public:</td></tr><tr><td class="number">10</td><td>       <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>       </td></tr><tr><td class="number">12</td><td>       <span class="k1">void</span> show<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>       </td></tr><tr><td class="number">14</td><td>       Planet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>Planet::Planet<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">18</td><td><span class="k2">{</span></td></tr><tr><td class="number">19</td><td>       x<span class="k3">=</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">2</span><span class="k2">)</span><span class="k3">-</span><span class="k2">(</span>earth-&gt;w<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>       y<span class="k3">=</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="k2">)</span><span class="k3">-</span><span class="k2">(</span>earth-&gt;h<span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td><span class="k1">void</span> Planet::Show<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span></td></tr><tr><td class="number">23</td><td><span class="k2">{</span></td></tr><tr><td class="number">24</td><td>       <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>       <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, earth, x-32, y-32<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>       <a href="http://www.allegro.cc/manual/acquire_screen" target="_blank"><span class="a">acquire_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>       <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, buffer, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>       <a href="http://www.allegro.cc/manual/release_screen" target="_blank"><span class="a">release_screen</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</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">5</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/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
That should be much more readable, and it does exactly the same, since the function is declared in the class.</p><p>It should work fine if you make those changes, but I didn&#39;t look too closely at the code, so there may be other hidden errors.</p><p>One more thing:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">const</span> <span class="k1">int</span> screen_w<span class="k3">=</span><span class="n">1024</span><span class="k2">;</span>
<span class="k1">const</span> <span class="k1">int</span> screen_h<span class="k3">=</span><span class="n">768</span><span class="k2">;</span>
</pre></div></div><p>
You are using Allegro... use SCREEN_W and SCREEN_H (all capital) to use what Allegro provides.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CursedTyrant)</author>
		<pubDate>Tue, 26 Sep 2006 23:12:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>THANK YOU everyone for the help. I really appreciate it <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (affeheimer)</author>
		<pubDate>Tue, 26 Sep 2006 23:38:39 +0000</pubDate>
	</item>
</rss>
