<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Allegro 5 - Assertion failed </title>
		<link>http://www.allegro.cc/forums/view/611982</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 04 Feb 2013 01:11:37 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>After leaving my game on for about 1-2 minutes, I get &quot;-abort() has been called&quot; and in the console window it says &quot;Assertion failed: bitmap, file allegro-git/src/bitmap.c, line 315&quot;. I think that it may have something to do with the coin collide functions, but I&#39;m not 100%.
</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="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">   7</span><span class="p">#include &lt;allegro5/allegro_audio.h&gt;</span>
<span class="number">   8</span><span class="p">#include&lt;allegro5/allegro_acodec.h&gt;</span>
<span class="number">   9</span><span class="p">#include &lt;cstdlib&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;ctime&gt;</span>
<span class="number">  11</span><span class="p">#include "objects.h"</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="p">#define ScreenWidth 800</span>
<span class="number">  14</span><span class="p">#define ScreenHeight 600</span>
<span class="number">  15</span>
<span class="number">  16</span><span class="c">//Prototpyes</span>
<span class="number">  17</span><span class="k1">void</span> initPlayer<span class="k2">(</span>Player <span class="k3">&amp;</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span>
<span class="number">  19</span><span class="k1">void</span> initCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span><span class="k1">void</span> drawCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin1, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  21</span><span class="k1">bool</span> coinCollide<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin1,Player <span class="k3">&amp;</span>player ,<span class="k1">int</span> cX, <span class="k1">int</span> cY, <span class="k1">int</span> cWidth, <span class="k1">int</span> cHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight, <span class="k1">bool</span> live, <span class="k1">int</span> coinCount<span class="k2">)</span><span class="k2">;</span>
<span class="number">  22</span>
<span class="number">  23</span><span class="k1">void</span> initCoin2<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  24</span><span class="k1">void</span> drawCoin2<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin2, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span><span class="k1">bool</span> coinCollide2<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin2,Player <span class="k3">&amp;</span>player ,<span class="k1">int</span> cX, <span class="k1">int</span> cY, <span class="k1">int</span> cWidth, <span class="k1">int</span> cHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight, <span class="k1">bool</span> live, <span class="k1">int</span> coinCount<span class="k2">)</span><span class="k2">;</span>
<span class="number">  26</span>
<span class="number">  27</span><span class="k1">void</span> initArrow<span class="k2">(</span>Arrow arrow<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  28</span><span class="k1">void</span> drawArrow<span class="k2">(</span>Arrow arrow<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span><span class="k1">void</span> fireArrow<span class="k2">(</span>Arrow arrow<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size, Player <span class="k3">&amp;</span>player, <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bowShot<span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span><span class="k1">void</span> updateArrow<span class="k2">(</span>Arrow arrow<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>
<span class="number">  32</span><span class="k1">bool</span> collision<span class="k2">(</span>Player <span class="k3">&amp;</span>player, <span class="k1">int</span> ex, <span class="k1">int</span> ey, <span class="k1">int</span> eWidth, <span class="k1">int</span> eHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>
<span class="number">  34</span><span class="k1">void</span> cameraUpdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition,Player <span class="k3">&amp;</span>player, <span class="k1">float</span> width, <span class="k1">float</span> height, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>bg<span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>
<span class="number">  36</span><span class="c">//Global Variables</span>
<span class="number">  37</span><span class="k1">enum</span> direction <span class="k2">{</span>LEFT, RIGHT<span class="k2">}</span><span class="k2">;</span>
<span class="number">  38</span><span class="k1">int</span> dir <span class="k3">=</span> LEFT<span class="k2">;</span>
<span class="number">  39</span><span class="k1">int</span> arrowCount <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  40</span><span class="c">//const int NUM_ARROW = 10;</span>
<span class="number">  41</span><span class="k1">const</span> <span class="k1">int</span> NUM_ENEMY <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  42</span><span class="k1">int</span> groundHeight <span class="k3">=</span> <span class="n">545</span><span class="k2">;</span>
<span class="number">  43</span><span class="k1">static</span> <span class="k1">bool</span> fired <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  44</span><span class="k1">bool</span> coinLive <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  45</span>
<span class="number">  46</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  47</span><span class="k2">{</span>
<span class="number">  48</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><span class="k1">static_cast</span><span class="k3">&lt;</span><span class="k1">unsigned</span> int&gt;<span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>  
<span class="number">  50</span>  <a href="http://www.allegro.cc/manual/al_set_new_display_option"><span class="a">al_set_new_display_option</span></a><span class="k2">(</span>ALLEGRO_DEPTH_SIZE, <span class="n">24</span>, ALLEGRO_REQUIRE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</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">  52</span>
<span class="number">  53</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="number">  54</span>  <span class="k2">{</span>
<span class="number">  55</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, NULL, <span class="s">"Error"</span>, <span class="s">"Falied to initialize allegro"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  56</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  57</span>  <span class="k2">}</span>
<span class="number">  58</span>  
<span class="number">  59</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>ScreenWidth, ScreenHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>
<span class="number">  61</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  62</span>  <span class="k2">{</span>
<span class="number">  63</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, NULL, <span class="s">"Error"</span>, <span class="s">"Falied to initialize the display"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  65</span>  <span class="k2">}</span>
<span class="number">  66</span>
<span class="number">  67</span>  Player player<span class="k2">;</span>
<span class="number">  68</span>  Coin coin1<span class="k2">;</span>
<span class="number">  69</span>  Coin coin2<span class="k2">;</span>
<span class="number">  70</span>  Arrow arrow<span class="k2">[</span><span class="n">10</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  71</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span>, active <span class="k3">=</span> <span class="k1">false</span>, draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  72</span>  <span class="k1">bool</span> jump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  73</span>  <span class="k1">int</span> sourceX <span class="k3">=</span> <span class="n">32</span>, sourceY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  74</span>  <span class="k1">int</span> coinCount <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  75</span>  <span class="k1">const</span> <span class="k1">float</span> FPS <span class="k3">=</span> <span class="n">60</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  76</span>  <span class="k1">float</span> jumpSpeed <span class="k3">=</span> <span class="n">16</span>.<span class="n">5</span><span class="k2">;</span>
<span class="number">  77</span>  <span class="k1">float</span> velX <span class="k3">=</span> <span class="n">0</span>, velY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  78</span>  <span class="k1">const</span> <span class="k1">float</span> gravity <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  79</span>  <span class="k1">float</span> cameraPosition<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="n">0</span>,<span class="n">0</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  80</span>  <span class="k1">int</span> cameraX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  81</span>
<span class="number">  82</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="number">  83</span>  <a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</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="number">  85</span>  <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>  <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>  <a href="http://www.allegro.cc/manual/al_install_audio"><span class="a">al_install_audio</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  88</span>  <a href="http://www.allegro.cc/manual/al_init_acodec_addon"><span class="a">al_init_acodec_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>
<span class="number">  90</span>  initPlayer<span class="k2">(</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number">  91</span>  initArrow<span class="k2">(</span>arrow, <span class="n">10</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>  initCoin<span class="k2">(</span>coin1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>  initCoin2<span class="k2">(</span>coin2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</span>
<span class="number">  95</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> keystate<span class="k2">;</span>
<span class="number">  96</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> camera<span class="k2">;</span>
<span class="number">  97</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>coinCollect <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_sample"><span class="a">al_load_sample</span></a><span class="k2">(</span><span class="s">"coin collect sound.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  98</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bowShot <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_sample"><span class="a">al_load_sample</span></a><span class="k2">(</span><span class="s">"bow sound effect.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bgSong <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_sample"><span class="a">al_load_sample</span></a><span class="k2">(</span><span class="s">"Background song.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE_INSTANCE"><span class="a">ALLEGRO_SAMPLE_INSTANCE</span></a> <span class="k3">*</span>songInstance <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_sample_instance"><span class="a">al_create_sample_instance</span></a><span class="k2">(</span>bgSong<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 101</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>character <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">"spritesheet(Bow &amp; left + right).png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>background <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">"ayers rock.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>coin <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">"coin2.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 104</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>ground <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">"Ground.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 105</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>platform <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">"platform(long).png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 106</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>platform2 <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">"platform(short).png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 107</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>numArrow <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"JUNGBN__.TTF"</span>, <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>numCoin <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"JUNGBN__.TTF"</span>, <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</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"> 110</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="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"> 111</span>
<span class="number"> 112</span>  <a href="http://www.allegro.cc/manual/al_reserve_samples"><span class="a">al_reserve_samples</span></a><span class="k2">(</span><span class="n">3</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</span>  <a href="http://www.allegro.cc/manual/al_set_sample_instance_playmode"><span class="a">al_set_sample_instance_playmode</span></a><span class="k2">(</span>songInstance, ALLEGRO_PLAYMODE_LOOP<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 114</span>  <a href="http://www.allegro.cc/manual/al_attach_sample_instance_to_mixer"><span class="a">al_attach_sample_instance_to_mixer</span></a><span class="k2">(</span>songInstance, <a href="http://www.allegro.cc/manual/al_get_default_mixer"><span class="a">al_get_default_mixer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 115</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>display, <span class="s">"Australian Outback"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</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"> 117</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"> 118</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"> 119</span>  
<span class="number"> 120</span>  <a href="http://www.allegro.cc/manual/al_play_sample_instance"><span class="a">al_play_sample_instance</span></a><span class="k2">(</span>songInstance<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>
<span class="number"> 122</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 124</span>  <span class="k2">{</span>
<span class="number"> 125</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number"> 126</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>event_queue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 127</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><span class="k3">&amp;</span>keystate<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>      
<span class="number"> 129</span>    <span class="k1">if</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><span class="k3">&amp;</span>keystate, ALLEGRO_KEY_ESCAPE<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 130</span>    <span class="k2">{</span>
<span class="number"> 131</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 132</span>    <span class="k2">}</span>
<span class="number"> 133</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 134</span>    <span class="k2">{</span>
<span class="number"> 135</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 136</span>    <span class="k2">}</span>
<span class="number"> 137</span>    
<span class="number"> 138</span>    
<span class="number"> 139</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 140</span>    <span class="k2">{</span>
<span class="number"> 141</span>      active <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 142</span>      updateArrow<span class="k2">(</span>arrow, <span class="n">10</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 143</span>
<span class="number"> 144</span>      <span class="k1">if</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><span class="k3">&amp;</span>keystate, ALLEGRO_KEY_D<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 145</span>      <span class="k2">{</span>
<span class="number"> 146</span>        velX <span class="k3">=</span> player.speed<span class="k2">;</span>
<span class="number"> 147</span>        cameraX <span class="k3">+</span><span class="k3">=</span> player.speed<span class="k2">;</span>
<span class="number"> 148</span>        dir <span class="k3">=</span> RIGHT<span class="k2">;</span>
<span class="number"> 149</span>        
<span class="number"> 150</span>      <span class="k2">}</span>
<span class="number"> 151</span>      <span class="k1">else</span> <span class="k1">if</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><span class="k3">&amp;</span>keystate, ALLEGRO_KEY_A<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 152</span>      <span class="k2">{</span>
<span class="number"> 153</span>        velX <span class="k3">=</span> <span class="k3">-</span>player.speed<span class="k2">;</span>
<span class="number"> 154</span>        cameraX <span class="k3">+</span><span class="k3">=</span> player.speed<span class="k2">;</span>
<span class="number"> 155</span>        dir <span class="k3">=</span> LEFT<span class="k2">;</span>
<span class="number"> 156</span>      <span class="k2">}</span>
<span class="number"> 157</span>      <span class="k1">else</span> 
<span class="number"> 158</span>      <span class="k2">{</span>
<span class="number"> 159</span>        velX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 160</span>        active <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 161</span>      <span class="k2">}</span>
<span class="number"> 162</span>      <span class="k1">if</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><span class="k3">&amp;</span>keystate, ALLEGRO_KEY_W<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> jump<span class="k2">)</span>
<span class="number"> 163</span>      <span class="k2">{</span>
<span class="number"> 164</span>        velY <span class="k3">=</span> <span class="k3">-</span>jumpSpeed<span class="k2">;</span>
<span class="number"> 165</span>        jump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 166</span>      <span class="k2">}</span>
<span class="number"> 167</span>      <span class="k1">if</span><span class="k2">(</span>active<span class="k2">)</span>
<span class="number"> 168</span>      <span class="k2">{</span>
<span class="number"> 169</span>        sourceX <span class="k3">+</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>character<span class="k2">)</span> <span class="k3">/</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 170</span>      <span class="k2">}</span>
<span class="number"> 171</span>      <span class="k1">else</span> 
<span class="number"> 172</span>      <span class="k2">{</span>
<span class="number"> 173</span>        sourceX <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> 
<span class="number"> 174</span>      <span class="k2">}</span>
<span class="number"> 175</span>      <span class="k1">if</span><span class="k2">(</span>sourceX <span class="k3">&gt;</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>character<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 176</span>      <span class="k2">{</span>
<span class="number"> 177</span>        sourceX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 178</span>      <span class="k2">}</span>
<span class="number"> 179</span>        sourceY <span class="k3">=</span> dir<span class="k2">;</span>
<span class="number"> 180</span>          draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 181</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>jump<span class="k2">)</span>
<span class="number"> 182</span>        velY <span class="k3">+</span><span class="k3">=</span> gravity<span class="k2">;</span>
<span class="number"> 183</span>      <span class="k1">else</span>
<span class="number"> 184</span>        velY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 185</span>        player.x <span class="k3">+</span><span class="k3">=</span> velX<span class="k2">;</span>
<span class="number"> 186</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 187</span>      
<span class="number"> 188</span>      jump <span class="k3">=</span> <span class="k2">(</span>player.y <span class="k3">&gt;</span><span class="k3">=</span> groundHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 189</span>
<span class="number"> 190</span>      <span class="k1">if</span><span class="k2">(</span>jump<span class="k2">)</span>
<span class="number"> 191</span>      <span class="k2">{</span>
<span class="number"> 192</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 193</span>      <span class="k2">}</span>
<span class="number"> 194</span>
<span class="number"> 195</span>      cameraUpdate<span class="k2">(</span>cameraPosition, player, <span class="n">32</span>, <span class="n">32</span>, platform<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 196</span>      <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 197</span>      <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 198</span>      <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 199</span>
<span class="number"> 200</span>    
<span class="number"> 201</span>
<span class="number"> 202</span>    <span class="k2">}</span>
<span class="number"> 203</span>    
<span class="number"> 204</span>    <span class="k1">if</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><span class="k3">&amp;</span>keystate, ALLEGRO_KEY_SPACE<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 205</span>    <span class="k2">{</span>
<span class="number"> 206</span>      fireArrow<span class="k2">(</span>arrow, <span class="n">10</span>, player, bowShot<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 207</span>    <span class="k2">}</span>
<span class="number"> 208</span>    <span class="k1">else</span>
<span class="number"> 209</span>    <span class="k2">{</span>
<span class="number"> 210</span>      fired <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 211</span>    <span class="k2">}</span>
<span class="number"> 212</span>    <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">360</span>, <span class="n">447</span>, <span class="n">351</span>, <span class="n">30</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 213</span>    <span class="k2">{</span>
<span class="number"> 214</span>      groundHeight <span class="k3">=</span> <span class="n">435</span><span class="k2">;</span>
<span class="number"> 215</span>      player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 216</span>    
<span class="number"> 217</span>    <span class="k2">}</span>  
<span class="number"> 218</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">70</span>, <span class="n">377</span>, <span class="n">214</span>, <span class="n">38</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 219</span>    <span class="k2">{</span>
<span class="number"> 220</span>      groundHeight <span class="k3">=</span> <span class="n">365</span><span class="k2">;</span>
<span class="number"> 221</span>      player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 222</span>    <span class="k2">}</span>
<span class="number"> 223</span>    <span class="k1">else</span>
<span class="number"> 224</span>    <span class="k2">{</span>
<span class="number"> 225</span>      groundHeight <span class="k3">=</span> <span class="n">545</span><span class="k2">;</span>
<span class="number"> 226</span>    <span class="k2">}</span>
<span class="number"> 227</span>    
<span class="number"> 228</span>    <span class="k1">if</span><span class="k2">(</span>coinCollide<span class="k2">(</span>coin1, player, coin1.x, coin1.y, coin1.width, coin1.height, <span class="n">32</span>, <span class="n">32</span>, coinLive, coinCount<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 229</span>    <span class="k2">{</span>
<span class="number"> 230</span>      coin1.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 231</span>      <span class="k3">+</span><span class="k3">+</span>coinCount<span class="k2">;</span>
<span class="number"> 232</span>      coin1.x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 233</span>      coin1.y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 234</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>coinCollect, <span class="n">1</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>, <span class="n">1</span>.<span class="n">0</span>, ALLEGRO_PLAYMODE_ONCE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 235</span>    <span class="k2">}</span>
<span class="number"> 236</span>    <span class="k1">if</span><span class="k2">(</span>coinCollide2<span class="k2">(</span>coin2, player, coin2.x, coin2.y, coin2.width, coin1.height, <span class="n">32</span>, <span class="n">32</span>, coinLive, coinCount<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 237</span>    <span class="k2">{</span>
<span class="number"> 238</span>      coin2.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 239</span>      <span class="k3">+</span><span class="k3">+</span>coinCount<span class="k2">;</span>
<span class="number"> 240</span>      coin2.x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 241</span>      coin2.y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 242</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>coinCollect, <span class="n">1</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>, <span class="n">1</span>.<span class="n">0</span>, ALLEGRO_PLAYMODE_ONCE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 243</span>    <span class="k2">}</span>
<span class="number"> 244</span>    
<span class="number"> 245</span>  <span class="k1">if</span><span class="k2">(</span>draw <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>event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 246</span>  <span class="k2">{</span>
<span class="number"> 247</span>    draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 248</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>platform, <span class="n">360</span>, <span class="n">447</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 249</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a> <span class="k2">(</span>platform2, <span class="n">70</span>, <span class="n">377</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 250</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>character, sourceX, sourceY <span class="k3">*</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>character<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>, <span class="n">32</span>, <span class="n">32</span>, player.x, player.y, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 251</span>    drawArrow<span class="k2">(</span>arrow,<span class="n">10</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 252</span>    drawCoin<span class="k2">(</span>coin1, coin<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 253</span>    drawCoin2<span class="k2">(</span>coin2, coin<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 254</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>numArrow, <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">252</span>,<span class="n">209</span>, <span class="n">22</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">10</span>, <span class="n">0</span>, <span class="s">"Arrows: %i"</span>, arrowCount<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 255</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>numCoin, <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">252</span>, <span class="n">209</span>, <span class="n">22</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">50</span>, <span class="n">0</span>, <span class="s">"Coins: %i"</span>, coinCount<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 256</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"> 257</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">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"> 258</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>background, <span class="n">0</span>,<span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 259</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>ground, <span class="n">0</span>, <span class="n">549</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 260</span>    
<span class="number"> 261</span>    
<span class="number"> 262</span>  <span class="k2">}</span>
<span class="number"> 263</span>  <span class="k2">}</span>
<span class="number"> 264</span>
<span class="number"> 265</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>character<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 266</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>ground<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 267</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>coin<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 268</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>platform<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 269</span>  <a href="http://www.allegro.cc/manual/al_destroy_sample"><span class="a">al_destroy_sample</span></a><span class="k2">(</span>coinCollect<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 270</span>  <a href="http://www.allegro.cc/manual/al_destroy_sample"><span class="a">al_destroy_sample</span></a><span class="k2">(</span>bowShot<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 271</span>  <a href="http://www.allegro.cc/manual/al_destroy_sample"><span class="a">al_destroy_sample</span></a><span class="k2">(</span>bgSong<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 272</span>  <a href="http://www.allegro.cc/manual/al_destroy_sample_instance"><span class="a">al_destroy_sample_instance</span></a><span class="k2">(</span>songInstance<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 273</span>  <a href="http://www.allegro.cc/manual/al_destroy_font"><span class="a">al_destroy_font</span></a><span class="k2">(</span>numArrow<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 274</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="number"> 275</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="number"> 276</span>  <a href="http://www.allegro.cc/manual/al_destroy_timer"><span class="a">al_destroy_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 277</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 278</span><span class="k2">}</span>
<span class="number"> 279</span><span class="k1">void</span> initPlayer<span class="k2">(</span>Player <span class="k3">&amp;</span>player<span class="k2">)</span>
<span class="number"> 280</span><span class="k2">{</span>
<span class="number"> 281</span>  player.x <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 282</span>  player.y <span class="k3">=</span> <span class="n">545</span><span class="k2">;</span>
<span class="number"> 283</span>  player.ID <span class="k3">=</span> PLAYER<span class="k2">;</span>
<span class="number"> 284</span>  player.lives <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 285</span>  player.speed <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 286</span>  player.score <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 287</span><span class="k2">}</span>
<span class="number"> 288</span>
<span class="number"> 289</span><span class="k1">void</span> initCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin1<span class="k2">)</span>
<span class="number"> 290</span><span class="k2">{</span>
<span class="number"> 291</span>  coin1.ID <span class="k3">=</span> COIN<span class="k2">;</span>
<span class="number"> 292</span>  coin1.width <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number"> 293</span>  coin1.height <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number"> 294</span>  coin1.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 295</span>  coin1.x <span class="k3">=</span> <span class="n">550</span><span class="k2">;</span>
<span class="number"> 296</span>  coin1.y <span class="k3">=</span> <span class="n">440</span><span class="k2">;</span>
<span class="number"> 297</span><span class="k2">}</span>
<span class="number"> 298</span><span class="k1">void</span> initCoin2<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin2<span class="k2">)</span>
<span class="number"> 299</span><span class="k2">{</span>
<span class="number"> 300</span>  coin2.ID <span class="k3">=</span> COIN<span class="k2">;</span>
<span class="number"> 301</span>  coin2.width <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number"> 302</span>  coin2.height <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number"> 303</span>  coin2.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 304</span>  coin2.x <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number"> 305</span>  coin2.y <span class="k3">=</span> <span class="n">365</span><span class="k2">;</span>
<span class="number"> 306</span><span class="k2">}</span>
<span class="number"> 307</span><span class="k1">void</span> drawCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin1, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span>
<span class="number"> 308</span><span class="k2">{</span>
<span class="number"> 309</span>  <span class="k1">if</span><span class="k2">(</span>coin1.live<span class="k2">)</span>
<span class="number"> 310</span>  <span class="k2">{</span>
<span class="number"> 311</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, coin1.x, coin1.y, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 312</span>  <span class="k2">}</span>
<span class="number"> 313</span><span class="k2">}</span>
<span class="number"> 314</span><span class="k1">void</span> drawCoin2<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin2, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span>
<span class="number"> 315</span><span class="k2">{</span>
<span class="number"> 316</span>  <span class="k1">if</span><span class="k2">(</span>coin2.live<span class="k2">)</span>
<span class="number"> 317</span>  <span class="k2">{</span>
<span class="number"> 318</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, coin2.x, coin2.y, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 319</span>  <span class="k2">}</span>
<span class="number"> 320</span><span class="k2">}</span>
<span class="number"> 321</span><span class="k1">bool</span> coinCollide<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin1,Player <span class="k3">&amp;</span>player, <span class="k1">int</span> cX, <span class="k1">int</span> cY, <span class="k1">int</span> cWidth, <span class="k1">int</span> cHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight, <span class="k1">bool</span> live, <span class="k1">int</span> coinCount<span class="k2">)</span>
<span class="number"> 322</span><span class="k2">{</span>
<span class="number"> 323</span>  <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>player.x <span class="k3">&gt;</span> cX <span class="k3">+</span> cWidth<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>player.y <span class="k3">&gt;</span> cY <span class="k3">+</span> cHeight<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span>
<span class="number"> 324</span>    <span class="k2">(</span>cX <span class="k3">&gt;</span> player.x <span class="k3">+</span> pWidth<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>cY <span class="k3">&gt;</span> player.y <span class="k3">+</span> pHeight<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>coin1.live<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 325</span>  <span class="k2">{</span>
<span class="number"> 326</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 327</span>  <span class="k2">}</span>
<span class="number"> 328</span>  <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 329</span><span class="k2">}</span>
<span class="number"> 330</span><span class="k1">bool</span> coinCollide2<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin1,Player <span class="k3">&amp;</span>player, <span class="k1">int</span> cX, <span class="k1">int</span> cY, <span class="k1">int</span> cWidth, <span class="k1">int</span> cHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight, <span class="k1">bool</span> live, <span class="k1">int</span> coinCount<span class="k2">)</span>
<span class="number"> 331</span><span class="k2">{</span>
<span class="number"> 332</span>  <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>player.x <span class="k3">&gt;</span> cX <span class="k3">+</span> cWidth<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>player.y <span class="k3">&gt;</span> cY <span class="k3">+</span> cHeight<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span>
<span class="number"> 333</span>    <span class="k2">(</span>cX <span class="k3">&gt;</span> player.x <span class="k3">+</span> pWidth<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>cY <span class="k3">&gt;</span> player.y <span class="k3">+</span> pHeight<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>coin1.live<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 334</span>  <span class="k2">{</span>
<span class="number"> 335</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 336</span>  <span class="k2">}</span>
<span class="number"> 337</span>  <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 338</span><span class="k2">}</span>
<span class="number"> 339</span>
<span class="number"> 340</span><span class="k1">void</span> initArrow<span class="k2">(</span>Arrow arrow<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 341</span><span class="k2">{</span>
<span class="number"> 342</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 343</span>  <span class="k2">{</span>
<span class="number"> 344</span>    arrow<span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> ARROW<span class="k2">;</span>
<span class="number"> 345</span>    arrow<span class="k2">[</span>i<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">4</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 346</span>    arrow<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 347</span>  <span class="k2">}</span>
<span class="number"> 348</span><span class="k2">}</span>
<span class="number"> 349</span><span class="k1">void</span> drawArrow<span class="k2">(</span>Arrow arrow<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 350</span><span class="k2">{</span>
<span class="number"> 351</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 352</span>  <span class="k2">{</span>
<span class="number"> 353</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>bArrow <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">"Arrow.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 354</span>    <span class="k1">if</span><span class="k2">(</span>arrow<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 355</span>    <span class="k2">{</span>
<span class="number"> 356</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>bArrow, arrow<span class="k2">[</span>i<span class="k2">]</span>.x, arrow<span class="k2">[</span>i<span class="k2">]</span>.y, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 357</span>    <span class="k2">}</span>
<span class="number"> 358</span>  <span class="k2">}</span>
<span class="number"> 359</span><span class="k2">}</span>
<span class="number"> 360</span><span class="k1">void</span> fireArrow<span class="k2">(</span>Arrow arrow<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size, Player <span class="k3">&amp;</span>player, <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bowShot<span class="k2">)</span>
<span class="number"> 361</span><span class="k2">{</span>
<span class="number"> 362</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 363</span>  <span class="k2">{</span>
<span class="number"> 364</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>arrow<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>fired<span class="k2">)</span>
<span class="number"> 365</span>    <span class="k2">{</span>
<span class="number"> 366</span>      <span class="k3">-</span><span class="k3">-</span>arrowCount<span class="k2">;</span>
<span class="number"> 367</span>      <span class="k3">-</span><span class="k3">-</span>size<span class="k2">;</span>
<span class="number"> 368</span>      arrow<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 369</span>      arrow<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">=</span> player.x <span class="k3">+</span> <span class="n">17</span><span class="k2">;</span>
<span class="number"> 370</span>      arrow<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">=</span> player.y <span class="k3">+</span> <span class="n">22</span><span class="k2">;</span>
<span class="number"> 371</span>      fired <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 372</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>bowShot, <span class="n">1</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>, <span class="n">1</span>.<span class="n">0</span>, ALLEGRO_PLAYMODE_ONCE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 373</span>    <span class="k2">}</span>
<span class="number"> 374</span>  <span class="k2">}</span>
<span class="number"> 375</span><span class="k2">}</span>
<span class="number"> 376</span><span class="k1">void</span> updateArrow<span class="k2">(</span>Arrow arrow<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 377</span><span class="k2">{</span>
<span class="number"> 378</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 379</span>  <span class="k2">{</span>
<span class="number"> 380</span>    <span class="k1">if</span><span class="k2">(</span>arrow<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 381</span>    <span class="k2">{</span>
<span class="number"> 382</span>        arrow<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">+</span><span class="k3">=</span> arrow<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 383</span>        <span class="k1">if</span><span class="k2">(</span>arrow<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&gt;</span><span class="k3">=</span>  ScreenWidth <span class="k3">-</span> <span class="n">5</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> size <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 384</span>        <span class="k2">{</span>
<span class="number"> 385</span>          arrow<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 386</span>        <span class="k2">}</span>
<span class="number"> 387</span>    <span class="k2">}</span>
<span class="number"> 388</span>  <span class="k2">}</span>
<span class="number"> 389</span><span class="k2">}</span>
<span class="number"> 390</span>
<span class="number"> 391</span><span class="k1">bool</span> collision<span class="k2">(</span>Player <span class="k3">&amp;</span>player, <span class="k1">int</span> ex, <span class="k1">int</span> ey, <span class="k1">int</span> eWidth, <span class="k1">int</span> eHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight<span class="k2">)</span>
<span class="number"> 392</span><span class="k2">{</span>
<span class="number"> 393</span>  <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>player.x <span class="k3">&gt;</span> ex <span class="k3">+</span> eWidth <span class="k3">-</span> <span class="n">10</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>player.y <span class="k3">&gt;</span> ey <span class="k3">+</span> eHeight <span class="k3">-</span> <span class="n">10</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span>
<span class="number"> 394</span>    <span class="k2">(</span>ex <span class="k3">&gt;</span> player.x <span class="k3">+</span> pWidth <span class="k3">-</span> <span class="n">10</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>ey <span class="k3">&gt;</span> player.y <span class="k3">+</span> pHeight <span class="k3">-</span> <span class="n">10</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 395</span>  <span class="k2">{</span>
<span class="number"> 396</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 397</span>  <span class="k2">}</span>
<span class="number"> 398</span>  <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 399</span><span class="k2">}</span>
<span class="number"> 400</span>
<span class="number"> 401</span><span class="k1">void</span> cameraUpdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition, Player <span class="k3">&amp;</span>player, <span class="k1">float</span> width, <span class="k1">float</span> height, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>bg<span class="k2">)</span>
<span class="number"> 402</span><span class="k2">{</span>
<span class="number"> 403</span>  cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>bg<span class="k2">)</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>player.x <span class="k3">+</span> width <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 404</span>  <span class="c">//cameraPosition[1] = -(al_get_bitmap_height(bg) / 2) + (player.y + height / 2);</span>
<span class="number"> 405</span>
<span class="number"> 406</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 407</span>    cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> 
<span class="number"> 408</span>  <span class="c">/*if(cameraPosition[1] &lt; 0)</span>
<span class="number"> 409</span><span class="c">    cameraPosition[1] = 0;*/</span>
<span class="number"> 410</span>
<span class="number"> 411</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DJLad16)</author>
		<pubDate>Sat, 02 Feb 2013 22:21:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That error typically (always?) means you are passing a pointer set to NULL to a function. Check the return values from <span class="source-code"><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a></span> to make sure all of your bitmaps loaded.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sat, 02 Feb 2013 22:28:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks for the feedback, but I changed the NULL to a 0 and it didn&#39;t work. I also tried ALLEGRO_FLIP_ HORIZONTAL but that didn&#39;t work either.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DJLad16)</author>
		<pubDate>Sat, 02 Feb 2013 22:57:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/611982/976062#target">DJLad16</a> said:</div><div class="quote"><p>Thanks for the feedback, but I changed the NULL to a 0 and it didn&#39;t work.</p></div></div><p>That is not what I meant. Your <span class="source-code"><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a></span> calls are likely failing, and returning NULL. You want to check for that as the drawing calls will assert and die if they get a NULL rather than a valid pointer to a bitmap.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sat, 02 Feb 2013 23:31:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think its glitching out somehow. I removed the the draw coin functions so now I just draw normally. Got the same error, still line 315, so I fill line 315 with a bunch of whitespace. Same error, same line?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DJLad16)</author>
		<pubDate>Sun, 03 Feb 2013 00:40:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try to gently massage the computer while singing a lullaby in a soft, gentle voice.  Then give it a kiss and pat the hard drive for a couple of minutes.  I bet it&#39;ll stop messing up your game then <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (torhu)</author>
		<pubDate>Sun, 03 Feb 2013 00:48:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/611982/976071#target">DJLad16</a> said:</div><div class="quote"><p>
I think its glitching out somehow. I removed the the draw coin functions so now I just draw normally. Got the same error, still line 315, so I fill line 315 with a bunch of whitespace. Same error, same line?
</p></div></div><p>

That&#39;s because it&#39;s referring to the line 315 in <span class="source-code">allegro-git<span class="k3">/</span>src<span class="k3">/</span>bitmap.c</span>, not your source code. If you open the mentioned file, line 315 should look like this:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ASSERT"><span class="a">ASSERT</span></a><span class="k2">(</span>bitmap<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

Which means that somewhere in your code, you are passing a NULL bitmap into that particular function. If you&#39;re using a decent IDE, you should be able to look at the stack trace and identify which line in <i>your code</i> that is triggering the assert. Otherwise, you will have to assert that each of the bitmap you loaded is not NULL (NULL is returned if the bitmap failed to load, most probably because it&#39;s missing). For example:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>coin <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">"coin2.png"</span><span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/ASSERT"><span class="a">ASSERT</span></a><span class="k2">(</span>coin<span class="k2">)</span><span class="k2">;</span>
<span class="c">// etc etc..</span>
</pre></div></div><p>

Then you&#39;ll be able to know which variable is NULL. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fishcake)</author>
		<pubDate>Sun, 03 Feb 2013 00:54:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>try this:</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"> 307</span><span class="k1">void</span> drawCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin1, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span>
<span class="number"> 308</span><span class="k2">{</span>
<span class="number"> 309</span>  <span class="k1">if</span><span class="k2">(</span>coin1.live<span class="k2">)</span>
<span class="number"> 310</span>  <span class="k2">{</span>
<span class="number"> 311</span>    <span class="k1">if</span><span class="k2">(</span>image <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 312</span>      <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>coin1.x <span class="k3">-</span> <span class="n">10</span>, coin1.y <span class="k3">-</span> <span class="n">10</span>, <span class="n">20</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">255</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 313</span>    <span class="k1">else</span>
<span class="number"> 314</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, coin1.x, coin1.y, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 315</span>  <span class="k2">}</span>
<span class="number"> 316</span><span class="k2">}</span>
<span class="number"> 317</span><span class="k1">void</span> drawCoin2<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin2, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span>
<span class="number"> 318</span><span class="k2">{</span>
<span class="number"> 319</span>  <span class="k1">if</span><span class="k2">(</span>coin2.live<span class="k2">)</span>
<span class="number"> 320</span>  <span class="k2">{</span>
<span class="number"> 321</span>    <span class="k1">if</span><span class="k2">(</span>image <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 322</span>      <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>coin2.x <span class="k3">-</span> <span class="n">10</span>, coin2.y <span class="k3">-</span> <span class="n">10</span>, <span class="n">20</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">255</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 323</span>    <span class="k1">else</span>
<span class="number"> 324</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, coin2.x, coin2.y, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 325</span>  <span class="k2">}</span>
<span class="number"> 326</span><span class="k2">}</span>
</div></div><p>

If it draws a circle instead of your coin, your coin&#39;s ALLEGRO_BITMAP* is NULL. Try checking if the file exists, and if it is named correctly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Cassio Renan)</author>
		<pubDate>Sun, 03 Feb 2013 01:01:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Or just check for your bitmaps being NULL right after loading them.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sun, 03 Feb 2013 05:44:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks Cassio <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /> I think your code, worked. I left for about 7 mins and got no errors
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DJLad16)</author>
		<pubDate>Sun, 03 Feb 2013 17:44:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sure, but you&#39;re probably not drawing any images. You&#39;re going to have to handle errors from <span class="source-code"><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a></span> properly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sun, 03 Feb 2013 21:48:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>DJLad16, mind me, that&#39;s not a sollution. I was merely making you check for failures in your coin drawing in a way it would be visually more obvious. The true sollution, as Thomas said, is checking if your bitmaps are NULL after creation.</p><p>If the code worked, either of two things are happening:</p><p>1) Your coin bitmap could not be created properly. Maybe the file is in the wrong format, or in the wrong path. The sollution is to check your bitmap for validity after creating.</p><p>2) The bitmap is created properly, but it is destroyed somewhere before drawing. The sollution is to check for validity before drawing.</p><p>For both, you have to act accordingly after checking(Either by finishing the application, or by doing something to make it obvious the error is happening(Such as drawing a circle where the coin should be)).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Cassio Renan)</author>
		<pubDate>Mon, 04 Feb 2013 01:11:37 +0000</pubDate>
	</item>
</rss>
