<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>bitmap loading problems</title>
		<link>http://www.allegro.cc/forums/view/607141</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 28 Apr 2011 09:51:20 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ive had trouble with this function since i first started using allegro 5 (a month ago <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> ).<br />It seems that al_load_bitmap refuses to load a bitmap for me, i had gotten it to work for a while but then after i changed a couple lines somewhere it stopped,<br />heres my code
</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="number">   2</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;time.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;cstdlib&gt;</span>
<span class="number">   7</span>
<span class="number">   8</span><span class="k1">const</span> <span class="k1">int</span> <a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a> <span class="k3">=</span> <span class="n">640</span><span class="k2">;</span>
<span class="number">   9</span><span class="k1">const</span> <span class="k1">int</span> <a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a> <span class="k3">=</span> <span class="n">480</span><span class="k2">;</span>
<span class="number">  10</span><span class="k1">const</span> <span class="k1">int</span> FPS <span class="k3">=</span> <span class="n">60</span><span class="k2">;</span>
<span class="number">  11</span><span class="k1">const</span> <span class="k1">int</span> OBJECTD <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number">  12</span><span class="k1">const</span> <span class="k1">float</span> UPR<span class="k3">=</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  13</span><span class="k1">const</span> <span class="k1">float</span> UPL<span class="k3">=</span><span class="n">2</span><span class="k2">;</span>
<span class="number">  14</span><span class="k1">const</span> <span class="k1">float</span> DNR<span class="k3">=</span><span class="n">3</span><span class="k2">;</span>
<span class="number">  15</span><span class="k1">const</span> <span class="k1">float</span> DNL<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number">  16</span><span class="k1">int</span> num_of_enemy<span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span><span class="k1">class</span> Game
<span class="number">  19</span><span class="k2">{</span>
<span class="number">  20</span>    public:
<span class="number">  21</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">;</span>
<span class="number">  22</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue<span class="k2">;</span>
<span class="number">  23</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer<span class="k2">;</span>
<span class="number">  24</span>        <span class="k1">bool</span> Init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  26</span>
<span class="number">  27</span><span class="k1">bool</span> Game::Init<span class="k2">(</span><span class="k2">)</span>
<span class="number">  28</span><span class="k2">{</span>
<span class="number">  29</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"failed to initialize allegro!\n"</span><span class="k2">)</span><span class="k2">;</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  30</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"failed to install keyboard drivers!\n"</span><span class="k2">)</span><span class="k2">;</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  31</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"failed to initialize image addon\n"</span><span class="k2">)</span><span class="k2">;</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  32</span>
<span class="number">  33</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number">  34</span>    event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>    timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>
<span class="number">  37</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span> <span class="k2">{</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"failed to create display!\n"</span><span class="k2">)</span><span class="k2">;</span> <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  38</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>event_queue<span class="k2">)</span> <span class="k2">{</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"failed to create event queue!\n"</span><span class="k2">)</span><span class="k2">;</span> <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span> <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  39</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span> <span class="k2">{</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"failed to create timer!\n"</span><span class="k2">)</span><span class="k2">;</span> <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span> <a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">;</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  40</span>
<span class="number">  41</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</span>    <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  46</span><span class="k2">}</span>
<span class="number">  47</span>
<span class="number">  48</span><span class="k1">class</span> Object
<span class="number">  49</span><span class="k2">{</span>
<span class="number">  50</span>    <span class="k1">int</span> x<span class="k2">;</span>
<span class="number">  51</span>    <span class="k1">int</span> y<span class="k2">;</span>
<span class="number">  52</span>    <span class="k1">int</span> d<span class="k2">;</span>
<span class="number">  53</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>bitmap<span class="k2">;</span>
<span class="number">  54</span>    public:
<span class="number">  55</span>        Object<span class="k2">(</span><span class="k1">bool</span> player<span class="k2">)</span><span class="k2">;</span>
<span class="number">  56</span>        Object<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span>        <span class="k1">void</span> Move<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> <span class="k3">*</span>state<span class="k2">)</span><span class="k2">;</span>
<span class="number">  58</span>        <span class="k1">void</span> Move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span>        <span class="k1">void</span> Draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>        <span class="k1">bool</span> Collide<span class="k2">(</span>Object victim<span class="k2">)</span><span class="k2">;</span>
<span class="number">  61</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  62</span>
<span class="number">  63</span>Object::Object<span class="k2">(</span><span class="k1">bool</span> player<span class="k2">)</span>
<span class="number">  64</span><span class="k2">{</span>
<span class="number">  65</span>    <span class="k1">if</span> <span class="k2">(</span>player<span class="k2">)</span>
<span class="number">  66</span>    <span class="k2">{</span>
<span class="number">  67</span>        x <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> OBJECTD<span class="k2">)</span><span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
<span class="number">  68</span>        y <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a> <span class="k3">-</span> OBJECTD<span class="k2">)</span><span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
<span class="number">  69</span>        bitmap <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"playerball.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>        <span class="k1">if</span> <span class="k2">(</span>bitmap <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"erroer loding bitmap\n"</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//displays this, meaning bitmap failed to load</span>
<span class="number">  71</span>        <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bitmap,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// actually crashes on this line, most likely because the bitmap is null</span>
<span class="number">  72</span>    <span class="k2">}</span>
<span class="number">  73</span><span class="k2">}</span>
<span class="number">  74</span>
<span class="number">  75</span>Object::Object<span class="k2">(</span><span class="k2">)</span>
<span class="number">  76</span><span class="k2">{</span>
<span class="number">  77</span>        d <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">4</span><span class="k2">;</span>
<span class="number">  78</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> %<a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">;</span>
<span class="number">  79</span>        y <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> %<a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a><span class="k2">;</span>
<span class="number">  80</span>        bitmap <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"cpuball.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>        <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bitmap,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span><span class="k2">}</span>
<span class="number">  83</span>
<span class="number">  84</span><span class="k1">void</span> Object::Move<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> <span class="k3">*</span>state<span class="k2">)</span>
<span class="number">  85</span><span class="k2">{</span>
<span class="number">  86</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"1 "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span>state,ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span>state,ALLEGRO_KEY_W<span class="k2">)</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> y&gt;0<span class="k2">)</span> y--<span class="k2">;</span>
<span class="number">  88</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"2 "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span>state,ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span>state,ALLEGRO_KEY_S<span class="k2">)</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>y<span class="k3">+</span>OBJECTD<span class="k2">)</span><span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">)</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  90</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"3 "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  91</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span>state,ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span>state,ALLEGRO_KEY_A<span class="k2">)</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> x&gt;0<span class="k2">)</span> x--<span class="k2">;</span>
<span class="number">  92</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"4 "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span>state,ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span>state,ALLEGRO_KEY_D<span class="k2">)</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>x<span class="k3">+</span>OBJECTD<span class="k2">)</span><span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a><span class="k2">)</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  94</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"5 \n"</span><span class="k2">)</span><span class="k2">;</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> Object::Move<span class="k2">(</span><span class="k2">)</span>
<span class="number">  98</span><span class="k2">{</span>
<span class="number">  99</span>    <span class="k1">if</span> <span class="k2">(</span>x<span class="k3">=</span><span class="k3">=</span><span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> d<span class="k3">=</span><span class="k3">=</span>UPL<span class="k2">)</span> <span class="k2">{</span>d<span class="k3">=</span>UPR<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 100</span>    <span class="k1">if</span> <span class="k2">(</span>x<span class="k3">=</span><span class="k3">=</span><span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> d<span class="k3">=</span><span class="k3">=</span>DNL<span class="k2">)</span> <span class="k2">{</span>d<span class="k3">=</span>DNR<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 101</span>    <span class="k1">if</span> <span class="k2">(</span>x<span class="k3">=</span><span class="k3">=</span><span class="k2">(</span>SCREEN_W-OBJECTD<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> d<span class="k3">=</span><span class="k3">=</span>DNR<span class="k2">)</span> <span class="k2">{</span>d<span class="k3">=</span>DNL<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 102</span>    <span class="k1">if</span> <span class="k2">(</span>x<span class="k3">=</span><span class="k3">=</span><span class="k2">(</span>SCREEN_W-OBJECTD<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> d<span class="k3">=</span><span class="k3">=</span>UPR<span class="k2">)</span> <span class="k2">{</span>d<span class="k3">=</span>UPL<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 103</span>    <span class="k1">if</span> <span class="k2">(</span>y<span class="k3">=</span><span class="k3">=</span><span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> d<span class="k3">=</span><span class="k3">=</span>UPL<span class="k2">)</span> <span class="k2">{</span>d<span class="k3">=</span>DNL<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 104</span>    <span class="k1">if</span> <span class="k2">(</span>y<span class="k3">=</span><span class="k3">=</span><span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> d<span class="k3">=</span><span class="k3">=</span>UPR<span class="k2">)</span> <span class="k2">{</span>d<span class="k3">=</span>DNR<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 105</span>    <span class="k1">if</span> <span class="k2">(</span>y<span class="k3">=</span><span class="k3">=</span><span class="k2">(</span>SCREEN_H-OBJECTD<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> d<span class="k3">=</span><span class="k3">=</span>DNR<span class="k2">)</span> <span class="k2">{</span>d<span class="k3">=</span>UPR<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 106</span>    <span class="k1">if</span> <span class="k2">(</span>y<span class="k3">=</span><span class="k3">=</span><span class="k2">(</span>SCREEN_H-OBJECTD<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> d<span class="k3">=</span><span class="k3">=</span>DNL<span class="k2">)</span> <span class="k2">{</span>d<span class="k3">=</span>UPL<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 107</span>    <span class="k1">if</span> <span class="k2">(</span>d <span class="k3">=</span><span class="k3">=</span> UPR<span class="k2">)</span> <span class="k2">{</span>y--<span class="k2">;</span>x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 108</span>    <span class="k1">if</span> <span class="k2">(</span>d <span class="k3">=</span><span class="k3">=</span> UPL<span class="k2">)</span> <span class="k2">{</span>y--<span class="k2">;</span>x--<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 109</span>    <span class="k1">if</span> <span class="k2">(</span>d <span class="k3">=</span><span class="k3">=</span> DNR<span class="k2">)</span> <span class="k2">{</span>y<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 110</span>    <span class="k1">if</span> <span class="k2">(</span>d <span class="k3">=</span><span class="k3">=</span> DNL<span class="k2">)</span> <span class="k2">{</span>y<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>x--<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 111</span><span class="k2">}</span>
<span class="number"> 112</span>
<span class="number"> 113</span><span class="k1">void</span> Object::Draw<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 114</span><span class="k2">{</span>
<span class="number"> 115</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"object.draw\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>bitmap,x,y,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span><span class="k2">}</span>
<span class="number"> 118</span>
<span class="number"> 119</span><span class="k1">bool</span> Object::Collide<span class="k2">(</span>Object victim<span class="k2">)</span>
<span class="number"> 120</span><span class="k2">{</span>
<span class="number"> 121</span>
<span class="number"> 122</span><span class="k2">}</span>
<span class="number"> 123</span>
<span class="number"> 124</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 125</span><span class="k2">{</span>
<span class="number"> 126</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"> 127</span>
<span class="number"> 128</span>    Game Sally<span class="k2">;</span>
<span class="number"> 129</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>Sally.Init<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Your Screwed\n"</span><span class="k2">)</span><span class="k2">;</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 130</span>
<span class="number"> 131</span>    Object Billy<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</span>    num_of_enemy <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 133</span>    Object <span class="k3">*</span>Enemy<span class="k2">;</span>
<span class="number"> 134</span>    Enemy <span class="k3">=</span> <span class="k1">new</span> Object<span class="k2">[</span>num_of_enemy<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 135</span>    <span class="k1">bool</span> redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 136</span>
<span class="number"> 137</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>Sally.display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>    <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>Sally.display,<span class="s">"TITLE"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>    <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">250</span>,<span class="n">100</span>,<span class="n">19</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 140</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 141</span>
<span class="number"> 142</span>    <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>Sally.timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 143</span>
<span class="number"> 144</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"starting loop\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 145</span>
<span class="number"> 146</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> <span class="k3">*</span>ret_state<span class="k2">;</span>
<span class="number"> 147</span>    ret_state <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a><span class="k2">;</span>
<span class="number"> 148</span>
<span class="number"> 149</span>    <span class="k1">while</span> <span class="k2">(</span><span class="k1">true</span><span class="k2">)</span>
<span class="number"> 150</span>    <span class="k2">{</span>
<span class="number"> 151</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number"> 152</span>        <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>Sally.event_queue,<span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 153</span>
<span class="number"> 154</span>        <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 155</span>        <span class="k2">{</span>
<span class="number"> 156</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"timer\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 157</span>            Billy.Move<span class="k2">(</span>ret_state<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 158</span>            <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> a<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>a<span class="k3">&lt;</span>num_of_enemy<span class="k2">;</span>a<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 159</span>            <span class="k2">{</span>
<span class="number"> 160</span>                Enemy<span class="k2">[</span>a<span class="k2">]</span>.Move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 161</span>            <span class="k2">}</span>
<span class="number"> 162</span>            redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 163</span>        <span class="k2">}</span>
<span class="number"> 164</span>
<span class="number"> 165</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 166</span>        <span class="k2">{</span>
<span class="number"> 167</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"keypressfghjiulkyjrtyuiiuytrtyuiuiy\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 168</span>            <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span>ret_state<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 169</span>        <span class="k2">}</span>
<span class="number"> 170</span>
<span class="number"> 171</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 172</span>        <span class="k2">{</span>
<span class="number"> 173</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"keyrelaesesfghjiulkyjrtyuiiuytrtyuiuiy\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 174</span>            <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span>ret_state<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 175</span>        <span class="k2">}</span>
<span class="number"> 176</span>
<span class="number"> 177</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 178</span>        <span class="k2">{</span>
<span class="number"> 179</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"close\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 180</span>            <a href="http://www.allegro.cc/manual/al_destroy_timer"><span class="a">al_destroy_timer</span></a><span class="k2">(</span>Sally.timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 181</span>            <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>Sally.display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 182</span>            <a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>Sally.event_queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 183</span>            <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 184</span>        <span class="k2">}</span>
<span class="number"> 185</span>
<span class="number"> 186</span>        <span class="k1">if</span> <span class="k2">(</span>redraw <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>Sally.event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 187</span>        <span class="k2">{</span>
<span class="number"> 188</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"redraw\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 189</span>            <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">50</span>,<span class="n">50</span>,<span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 190</span>            Billy.Draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 191</span>            <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> a<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>a<span class="k3">&lt;</span>num_of_enemy<span class="k2">;</span>a<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 192</span>            <span class="k2">{</span>
<span class="number"> 193</span>                Enemy<span class="k2">[</span>a<span class="k2">]</span>.Draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 194</span>            <span class="k2">}</span>
<span class="number"> 195</span>            <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 196</span>            redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 197</span>        <span class="k2">}</span>
<span class="number"> 198</span>    <span class="k2">}</span>
<span class="number"> 199</span>
<span class="number"> 200</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 201</span><span class="k2">}</span>
</div></div><p>

lines 69-71 are where it crashes</p><p>as a side note i double checked the spelling and the image file is in fact next to the .exe, Ive also attached the two image files.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fworg64)</author>
		<pubDate>Thu, 28 Apr 2011 04:38:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Throw a <span class="source-code"><a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a></span> in <span class="source-code">Game::init</span> to make sure Allegro is being initialized before any bitmaps are loaded.</p><p>It could also be a path issue. <span class="source-code"><a href="http://www.allegro.cc/manual/al_filename_exists"><span class="a">al_filename_exists</span></a><span class="k2">(</span><span class="k2">)</span></span> will return <span class="source-code"><span class="k1">true</span></span> if the file is where it should be.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Thu, 28 Apr 2011 04:53:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If Allegro isn&#39;t being initialized first I&#39;d try changing <span class="source-code">Object Billy<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span></span> to <span class="source-code">Object<span class="k3">*</span> Billy <span class="k3">=</span> <span class="k1">new</span> Object<span class="k2">(</span><span class="k1">true</span><span class="k2">)</span><span class="k2">;</span></span> and see if that works.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (someone972)</author>
		<pubDate>Thu, 28 Apr 2011 05:41:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Make sure your game is being run from the same directory that it is in, otherwise relative paths will not work correctly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 28 Apr 2011 07:02:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>After following your guys&#39;s advice i found it must be a path issue, allegro is initialized judging by the al_is_system_installed() function i added right before the al_load_bitmap. It must then be a path error which i cant grasp why, the file is named how it should and is right next to the .exe. the only modifications ive made to the program is now Object::Object(bool player) is as follows.
</p><div class="source-code snippet"><div class="inner"><pre>Object::Object<span class="k2">(</span><span class="k1">bool</span> player<span class="k2">)</span>
<span class="k2">{</span>
    <span class="k1">if</span> <span class="k2">(</span>player<span class="k2">)</span>
    <span class="k2">{</span>
        x <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> OBJECTD<span class="k2">)</span><span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
        y <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a> <span class="k3">-</span> OBJECTD<span class="k2">)</span><span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_is_system_installed"><span class="a">al_is_system_installed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"allegro is installed\n"</span><span class="k2">)</span><span class="k2">;</span><span class="c">// true</span>
        <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_filename_exists"><span class="a">al_filename_exists</span></a><span class="k2">(</span><span class="s">"playerball.bmp"</span><span class="k2">)</span><span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"it doesnt exist\n"</span><span class="k2">)</span><span class="k2">;</span><span class="c">// the file does not exist</span>
        bitmap <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"playerball.bmp"</span><span class="k2">)</span><span class="k2">;</span>
        <span class="k1">if</span> <span class="k2">(</span>bitmap <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"erroer loding bitmap\n"</span><span class="k2">)</span><span class="k2">;</span><span class="c">// the pointer is null</span>
        <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bitmap,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
not much changed (nothing functionally at least)</p><p>EDIT::Found the problem, was in fact a Path problem but not my fault,<br />my IDE code::blocks which i was running my program from, uses the project folder to look for resources and files, not the debug folder that holds the .exe where most would assume. The program runs when launched normally but will only function when launched from the IDE if the resources are in the main project folder! <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fworg64)</author>
		<pubDate>Thu, 28 Apr 2011 08:57:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can fix this by setting the execution working directory of each build type of your project. Go to Project-&gt;Properties-&gt;Build Targets and set that to the directory where your program is built. You can see this by looking slightly up to the Output Filename textbox :</p><p><span class="remote-thumbnail"><span class="json">{"name":"604019","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/5\/c5d1dbcc351316d031ee7874dec1ebaf.png","w":702,"h":483,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/5\/c5d1dbcc351316d031ee7874dec1ebaf"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/c/5/c5d1dbcc351316d031ee7874dec1ebaf-240.jpg" alt="604019" width="240" height="165" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 28 Apr 2011 09:51:20 +0000</pubDate>
	</item>
</rss>
