<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Can anyone see if im actually coding right.</title>
		<link>http://www.allegro.cc/forums/view/585861</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 12 Jun 2006 21:48:36 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So awhile back I was looking through the half-life source code and I just sortof figured this is how they do large scale games.  So i decided to start programming sortof like that using a lot of pointers and stuff across a lot of files.  it just seems like this is the slow way of doig things.  like that im not gettting the most fps out of it.  I also changed the player structure to have a datafile type already in the structure so i could send the struct to delete the datafile in another function.(sortof hard to explain but you&#39;ll see)  but since i&#39;ve done that its made loading the game take 10 times longer.  it was instant before to just load the image.  now it takes like 10 seconds are so now.  so im wondering why this is happening. im also not sure im doing the frame limiting right or if the rest im putting to slow the  animation down is the proper way of doing things.  thanks a bunch for any help.  i know its sortof long.</p><p>the code is attached to this topic.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (dothedru22)</author>
		<pubDate>Mon, 12 Jun 2006 04:36:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
the code is attached to this topic.
</p></div></div><p>

And so is every other part of your project.  If you want people to look at your code (which there&#39;s only 10Kb of), you don&#39;t need to attach ~700Kb of unnecessary data.</p><p>I&#39;ll paste the relevant part of your code here, so that others don&#39;t have to download the entire zip just to see what you are doing...</p><p>player.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">#ifndef _PLAYER_H</span></td></tr><tr><td class="number">2</td><td><span class="p">#define _PLAYER_H</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">5</td><td><span class="p">#include "image.h"</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td><span class="k1">struct</span> S_Player <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>       </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>       <span class="k1">int</span> offsetx, offsety<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>       <span class="k1">int</span> playerspeed<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> img<span class="k2">[</span><span class="n">10</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>       <span class="k1">int</span> current<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>       <span class="k1">int</span> frame<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>       <span class="k1">int</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>       <a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a><span class="k3">*</span> dat<span class="k2">;</span></td></tr><tr><td class="number">17</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td><span class="k1">struct</span> S_Player createPlayer<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td><span class="k1">void</span> deletePlayer<span class="k2">(</span><span class="k1">struct</span> S_Player<span class="k3">*</span> p<span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">22</td><td><span class="p">#endif //_PLAYER_H</span></td></tr></tbody></table></div></div><p>

player.c:
</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 "player.h"</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="k1">struct</span> S_Player createPlayer<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">5</td><td>         </td></tr><tr><td class="number">6</td><td>         <span class="k1">struct</span> S_Player player<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>         player.dat <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">"image/sprite.dat"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>         </td></tr><tr><td class="number">9</td><td>         player.img<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <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>player.dat<span class="k2">[</span>stand<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>         player.img<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <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>player.dat<span class="k2">[</span>run1<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>         player.img<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <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>player.dat<span class="k2">[</span>run2<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">12</td><td>         player.img<span class="k2">[</span><span class="n">3</span><span class="k2">]</span> <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>player.dat<span class="k2">[</span>run3<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>         player.img<span class="k2">[</span><span class="n">4</span><span class="k2">]</span> <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>player.dat<span class="k2">[</span>run4<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>         player.img<span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <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>player.dat<span class="k2">[</span>run5<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>         player.img<span class="k2">[</span><span class="n">6</span><span class="k2">]</span> <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>player.dat<span class="k2">[</span>run6<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">16</td><td>         player.x <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>         player.y <span class="k3">=</span> <span class="n">150</span><span class="k2">;</span>   </td></tr><tr><td class="number">18</td><td>         player.playerspeed <span class="k3">=</span> <span class="n">6</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>         player.current <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> </td></tr><tr><td class="number">20</td><td>         player.key <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>         </td></tr><tr><td class="number">22</td><td>         <span class="k1">return</span> player<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>&#160;</td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td><span class="k1">void</span> deletePlayer<span class="k2">(</span><span class="k1">struct</span> S_Player<span class="k3">*</span> p<span class="k2">)</span> <span class="k2">{</span> </td></tr><tr><td class="number">27</td><td>     </td></tr><tr><td class="number">28</td><td>     <a href="http://www.allegro.cc/manual/unload_datafile" target="_blank"><span class="a">unload_datafile</span></a><span class="k2">(</span>p-&gt;dat<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>     </td></tr><tr><td class="number">30</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

[edit]Oops, forgot to add the drawing routines:</p><p>game.c:
</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 "game.h"</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">volatile</span> <span class="k1">int</span> ticks<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="k1">void</span> startUp<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">6</td><td>                   </td></tr><tr><td class="number">7</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">8</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">9</td><td>     <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>   </td></tr><tr><td class="number">10</td><td>     <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>     <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT_FULLSCREEN,<span class="n">320</span>,<span class="n">200</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>     <a href="http://www.allegro.cc/manual/LOCK_FUNCTION" target="_blank"><span class="a">LOCK_FUNCTION</span></a><span class="k2">(</span>ticker<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>     <a href="http://www.allegro.cc/manual/LOCK_VARIABLE" target="_blank"><span class="a">LOCK_VARIABLE</span></a><span class="k2">(</span>ticks<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>     <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>ticker, BPS_TO_TIMER<span class="k2">(</span><span class="n">30</span><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></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td><span class="k1">void</span> ticker<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">18</td><td>     </td></tr><tr><td class="number">19</td><td>    ticks<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td><span class="k2">}</span></td></tr><tr><td class="number">21</td><td><a href="http://www.allegro.cc/manual/END_OF_FUNCTION" target="_blank"><span class="a">END_OF_FUNCTION</span></a><span class="k2">(</span>ticker<span class="k2">)</span></td></tr><tr><td class="number">22</td><td>&#160;</td></tr><tr><td class="number">23</td><td><span class="k1">void</span> setupTicker<span class="k2">(</span><span class="k1">struct</span> S_Player<span class="k3">*</span> p<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>      p-&gt;frame <span class="k3">=</span> ticks<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>&#160;</td></tr><tr><td class="number">28</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> createBuffer<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">29</td><td>        </td></tr><tr><td class="number">30</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_bitmap" target="_blank"><span class="a">create_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">31</td><td>     <span class="k1">return</span> buffer<span class="k2">;</span> </td></tr><tr><td class="number">32</td><td><span class="k2">}</span></td></tr><tr><td class="number">33</td><td>   </td></tr><tr><td class="number">34</td><td><span class="k1">void</span> drawMenu<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> b, <span class="k1">struct</span> S_Menu<span class="k3">*</span> m<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">35</td><td>     </td></tr><tr><td class="number">36</td><td>     <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>m-&gt;current <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span><span class="k2">)</span> m-&gt;current <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>     <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span> m-&gt;current <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>     <span class="k1">if</span> <span class="k2">(</span>m-&gt;current <span class="k3">&gt;</span> <span class="n">3</span><span class="k2">)</span> m-&gt;current <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>     <span class="k1">if</span> <span class="k2">(</span>m-&gt;current <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> m-&gt;current <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>     </td></tr><tr><td class="number">40</td><td>     </td></tr><tr><td class="number">41</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">85</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>     <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>b,m-&gt;img<span class="k2">[</span>m-&gt;current<span class="k2">]</span>,m-&gt;x,m-&gt;y<span class="k2">)</span><span class="k2">;</span>     </td></tr><tr><td class="number">43</td><td>     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>b,<a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</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">44</td><td>     <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>b<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td><span class="k2">}</span></td></tr><tr><td class="number">46</td><td>&#160;</td></tr><tr><td class="number">47</td><td><span class="k1">void</span> drawScreen<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> b, <span class="k1">struct</span> S_Player<span class="k3">*</span> p<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">48</td><td>    </td></tr><tr><td class="number">49</td><td>    <span class="k1">if</span> <span class="k2">(</span>p-&gt;key <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>b,p-&gt;img<span class="k2">[</span>p-&gt;current<span class="k2">]</span>,p-&gt;x,p-&gt;y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>       <span class="k1">else</span> <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>b,p-&gt;img<span class="k2">[</span>p-&gt;current<span class="k2">]</span>,p-&gt;x,p-&gt;y<span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">51</td><td>     </td></tr><tr><td class="number">52</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">50</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>     <span class="k1">while</span> <span class="k2">(</span>p-&gt;frame <span class="k3">&gt;</span> ticks<span class="k2">)</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></td></tr><tr><td class="number">54</td><td>  </td></tr><tr><td class="number">55</td><td>     p-&gt;frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>        </td></tr><tr><td class="number">57</td><td>     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>b,<a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</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">58</td><td>     <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>b<span class="k2">)</span><span class="k2">;</span>   </td></tr><tr><td class="number">59</td><td>     </td></tr><tr><td class="number">60</td><td>     updateInput<span class="k2">(</span>p<span class="k2">)</span><span class="k2">;</span>  <span class="c">//Input   </span></td></tr><tr><td class="number">61</td><td>      </td></tr><tr><td class="number">62</td><td><span class="k2">}</span></td></tr><tr><td class="number">63</td><td>&#160;</td></tr><tr><td class="number">64</td><td><span class="k1">void</span> updateInput<span class="k2">(</span><span class="k1">struct</span> S_Player<span class="k3">*</span>p<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">65</td><td>     </td></tr><tr><td class="number">66</td><td>      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_RIGHT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">67</td><td>         p-&gt;key <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>         p-&gt;current<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>               </td></tr><tr><td class="number">69</td><td>         <span class="k1">if</span> <span class="k2">(</span>p-&gt;current <span class="k3">&gt;</span> <span class="n">5</span><span class="k2">)</span> p-&gt;current <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>         p-&gt;x <span class="k3">+</span><span class="k3">=</span> p-&gt;playerspeed <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>            </td></tr><tr><td class="number">72</td><td>     <span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_LEFT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">73</td><td>            </td></tr><tr><td class="number">74</td><td>         p-&gt;key <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>         p-&gt;current<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>               </td></tr><tr><td class="number">76</td><td>         <span class="k1">if</span> <span class="k2">(</span>p-&gt;current <span class="k3">&gt;</span> <span class="n">5</span><span class="k2">)</span> p-&gt;current <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>         p-&gt;x <span class="k3">+</span><span class="k3">=</span> <span class="k3">-</span>p-&gt;playerspeed <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">78</td><td>    </td></tr><tr><td class="number">79</td><td>     <span class="k2">}</span> <span class="k1">else</span> p-&gt;current <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>     </td></tr><tr><td class="number">80</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Mon, 12 Jun 2006 05:21:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>yea. sorry.  i did that so people would know how long it took to load.  i would have had to post the dat files and stuff anyway if i just gave the .exe to see that.  so i just figured i&#39;d do that.  but i appreciate you posting it on the forum and stuff.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (dothedru22)</author>
		<pubDate>Mon, 12 Jun 2006 05:36:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>rest() will pause your program.  It is not an effecient way to wait for events to occur.</p><p>You should be waiting based on a timer variable.<br />Then only, and only then when you have no work to do you call rest().
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (A J)</author>
		<pubDate>Mon, 12 Jun 2006 07:21:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>yea i am.  i did that fps limiting thats posted on these forums somewhere.  im just rying to slow the animtion down.</p><p>main.c
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>&#160;</td></tr><tr><td class="number">2</td><td><span class="p">#include "game.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> <span class="k2">{</span></td></tr><tr><td class="number">5</td><td>        </td></tr><tr><td class="number">6</td><td>    startUp<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> buffer <span class="k3">=</span> createBuffer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>    <span class="k1">struct</span> S_Menu menu <span class="k3">=</span> createMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">9</td><td>    </td></tr><tr><td class="number">10</td><td>    <span class="k1">struct</span> S_Player player <span class="k3">=</span> createPlayer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>   </td></tr><tr><td class="number">12</td><td>        </td></tr><tr><td class="number">13</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="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>       </td></tr><tr><td class="number">15</td><td>       drawScreen<span class="k2">(</span>buffer,<span class="k3">&amp;</span>player<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>       <a href="http://www.allegro.cc/manual/hline" target="_blank"><span class="a">hline</span></a><span class="k2">(</span>buffer,<span class="n">0</span>,<span class="n">190</span>,<span class="n">320</span>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>         </td></tr><tr><td class="number">18</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">19</td><td>    </td></tr><tr><td class="number">20</td><td>    destroyMenu<span class="k2">(</span><span class="k3">&amp;</span>menu<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>    deletePlayer<span class="k2">(</span><span class="k3">&amp;</span>player<span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">22</td><td>        </td></tr><tr><td class="number">23</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td><span class="k2">}</span></td></tr><tr><td class="number">25</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>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (dothedru22)</author>
		<pubDate>Mon, 12 Jun 2006 07:48:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Your create* functions should allocate (via malloc) the objects, then return a pointer to them, then the destroy* functions should free (via free) them. Having objects on the stack is a bad idea, because there&#39;s limited space there.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Mon, 12 Jun 2006 08:32:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>well i&#39;ve never understood memory mangement that well.  like the heap and stack stuff.  like if i use malloc to see if theres enough memory to allocate for the structure thats all fine and dandy but what if theres not and it fails.  i can&#39;t run my game?  o well.  whatever though i&#39;ll use malloc.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (dothedru22)</author>
		<pubDate>Mon, 12 Jun 2006 20:09:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
using a lot of pointers and stuff across a lot of files. it just seems like this is the slow way of doig things. like that im not gettting the most fps out of it.
</p></div></div><p>
Well, if you&#39;d do that I bet speed wouldn&#39;t be your biggest issue... And the slowdown is caused by the drawing commands. Always.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fladimir da Gorf)</author>
		<pubDate>Mon, 12 Jun 2006 21:28:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>well before my player.c looked something like this</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">struct</span> S_Player createPlayer<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">2</td><td>         </td></tr><tr><td class="number">3</td><td>         <a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a><span class="k3">*</span> dat</td></tr><tr><td class="number">4</td><td>         <span class="k1">struct</span> S_Player player<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>         dat <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">"image/sprite.dat"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>         </td></tr><tr><td class="number">7</td><td>         player.img<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <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>dat<span class="k2">[</span>stand<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>         player.img<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <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>dat<span class="k2">[</span>run1<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>         player.img<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <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>dat<span class="k2">[</span>run2<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>         player.img<span class="k2">[</span><span class="n">3</span><span class="k2">]</span> <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>dat<span class="k2">[</span>run3<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>         player.img<span class="k2">[</span><span class="n">4</span><span class="k2">]</span> <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>dat<span class="k2">[</span>run4<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">12</td><td>         player.img<span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <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>dat<span class="k2">[</span>run5<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>         player.img<span class="k2">[</span><span class="n">6</span><span class="k2">]</span> <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>dat<span class="k2">[</span>run6<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>         player.x <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>         player.y <span class="k3">=</span> <span class="n">150</span><span class="k2">;</span>   </td></tr><tr><td class="number">16</td><td>         player.playerspeed <span class="k3">=</span> <span class="n">6</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>         player.current <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> </td></tr><tr><td class="number">18</td><td>         player.key <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>         </td></tr><tr><td class="number">20</td><td>         <span class="k1">return</span> player<span class="k2">;</span></td></tr><tr><td class="number">21</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

and that loaded up fast and stuff.  the player.c that was posted before takes about 10 seconds.  just wondering why that is.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (dothedru22)</author>
		<pubDate>Mon, 12 Jun 2006 21:48:36 +0000</pubDate>
	</item>
</rss>
