<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Sound load crash. </title>
		<link>http://www.allegro.cc/forums/view/610732</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 01 Aug 2012 21:08:52 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So, my game keeps crashing when I attempt to load the sound file.<br />I&#39;ve completely rewritten my game quite a few times, to try and solve it.</p><p>So far, all attempts have been unsuccessful, and it keeps crashing the moment I run the function al_load_sample().<br />I am exhausted trying to solve this, and it&#39;s far past midnight for me.<br />Here&#39;s my main function/file, main.cpp :
</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">#define ALLEGRO_STATICLINK</span>
<span class="number">  2</span><span class="p">#define bufferWidth 1920</span>
<span class="number">  3</span><span class="p">#define bufferHeight 1080</span>
<span class="number">  4</span><span class="p">#define FPS 45</span>
<span class="number">  5</span><span class="c">// ^ needed, below are includes</span>
<span class="number">  6</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">  7</span><span class="p">#include &lt;stdlib.h&gt;</span>
<span class="number">  8</span><span class="p">#include "allegro5/allegro.h"</span>
<span class="number">  9</span><span class="p">#include "allegro5/allegro_primitives.h"</span>
<span class="number"> 10</span><span class="p">#include "allegro5/allegro_audio.h"</span>
<span class="number"> 11</span><span class="p">#include "allegro5/allegro_acodec.h"</span>
<span class="number"> 12</span><span class="p">#include "allegro5/allegro_image.h"</span>
<span class="number"> 13</span><span class="p">#include "allegro5/allegro_native_dialog.h"</span>
<span class="number"> 14</span><span class="p">#include "allegro5/allegro_font.h"</span>
<span class="number"> 15</span><span class="p">#include "allegro5/allegro_ttf.h"</span>
<span class="number"> 16</span><span class="p">#include "start.h"</span>
<span class="number"> 17</span>
<span class="number"> 18</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span><span class="k3">*</span>argv<span class="k2">)</span>
<span class="number"> 19</span><span class="k2">{</span>
<span class="number"> 20</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>sample<span class="k2">;</span>
<span class="number"> 21</span>  Message<span class="k2">(</span><span class="s">"Sample declared\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>  AllegroSetUp<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>  Message<span class="k2">(</span><span class="s">"Allegro set up right.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>  SetUpGame<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>  Message<span class="k2">(</span><span class="s">"Game is ready to play.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</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">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>  Message<span class="k2">(</span><span class="s">"test sample reserved\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>  sample <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">"music.ogg"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>  Message<span class="k2">(</span><span class="s">"Sample loaded.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>  <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>sample, <span class="n">1</span>, <span class="n">0</span>, <span class="n">1</span>, ALLEGRO_PLAYMODE_LOOP, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>  Message<span class="k2">(</span><span class="s">"Sample is playing...\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>  <span class="k1">while</span><span class="k2">(</span><span class="n">1</span><span class="k2">)</span>
<span class="number"> 33</span>  <span class="k2">{</span>
<span class="number"> 34</span>  
<span class="number"> 35</span>  <span class="k2">}</span>
<span class="number"> 36</span>  ExitGame<span class="k2">(</span><span class="s">"End Of Game\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span><span class="k2">}</span>
</div></div><p>
And here is &quot;start.h&quot; Not every function in &quot;start.h&quot; is called by my main.
</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>FILE <span class="k3">*</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">;</span> <span class="c">//log file. Write messages to this for debugging</span>
<span class="number">   2</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="c">//the main display.</span>
<span class="number">   3</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>screenBuffer<span class="k2">;</span> <span class="c">//screen buffer</span>
<span class="number">   4</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="c">//The time for game, operates at 45fps</span>
<span class="number">   5</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>eventQueue<span class="k2">;</span> <span class="c">//event queue, where events will be held.</span>
<span class="number">   6</span><span class="k1">int</span> screenWidth, screenHeight<span class="k2">;</span><span class="c">//global scaling variables.</span>
<span class="number">   7</span><span class="c">////////////////////// now functions used to set up stuff.</span>
<span class="number">   8</span><span class="k1">int</span> AllegroSetUp<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   9</span><span class="c">//sets up ALL allegro needed functions. Should be first line of code...</span>
<span class="number">  10</span><span class="k1">void</span> SetUpGame<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  11</span><span class="c">//calls other set up functions to clean up code</span>
<span class="number">  12</span><span class="k1">void</span> AbortGame<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> message<span class="k2">)</span><span class="k2">;</span>
<span class="number">  13</span><span class="c">//avoids redundancy, abort game after message display</span>
<span class="number">  14</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> SetUpDisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span><span class="c">//set the display to fullscreen, no res change</span>
<span class="number">  16</span><span class="c">//returns the display</span>
<span class="number">  17</span><a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> SetUpTimer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span><span class="c">//sets up the timer, ticks 45 times each second...</span>
<span class="number">  19</span>FILE<span class="k3">*</span> SetUpLog<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span><span class="c">//prepares the log file for logging...</span>
<span class="number">  21</span><span class="k1">void</span> Message<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>input<span class="k2">)</span><span class="k2">;</span>
<span class="number">  22</span><span class="c">//standard message, output to terminal, and out to the log file as well. Useful for debugging...</span>
<span class="number">  23</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> SetUpScreenBuffer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  24</span><span class="c">// Returns the screen buffer which will be used for resolution independace. Write to this, then write this</span>
<span class="number">  25</span><span class="c">// to the screen after finished drawing. Scale as needed.</span>
<span class="number">  26</span><span class="k1">void</span> ExitGame<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>message<span class="k2">)</span><span class="k2">;</span>
<span class="number">  27</span><span class="c">//Cleans up buffer, destroys display and writes logs. Use this to close.</span>
<span class="number">  28</span><span class="k1">void</span> DisplayBuffer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span><span class="c">//closes the log, destroys buffer and screen and exits.</span>
<span class="number">  30</span><span class="k1">void</span> SetUpEvents<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span><span class="c">//sets up the event queue. Affects the global eventQueue variable.</span>
<span class="number">  32</span><span class="k1">int</span> AllegroSetUp<span class="k2">(</span><span class="k2">)</span>
<span class="number">  33</span><span class="k2">{</span>
<span class="number">  34</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>
<span class="number">  35</span>    AbortGame<span class="k2">(</span><span class="s">"Allegro Error, fatal.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>  <span class="k2">}</span>
<span class="number">  37</span>  Message<span class="k2">(</span><span class="s">"Allegro Initialized Successfully\n"</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><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>
<span class="number">  39</span>        AbortGame<span class="k2">(</span><span class="s">"Failed to install keyboard\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>  <span class="k2">}</span>
<span class="number">  41</span>  Message<span class="k2">(</span><span class="s">"Keyboard initialized successfully\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  43</span>    AbortGame<span class="k2">(</span><span class="s">"Failure to install mouse\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>  <span class="k2">}</span>
<span class="number">  45</span>  Message<span class="k2">(</span><span class="s">"Mouse installed successfully!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">{</span>
<span class="number">  47</span>    AbortGame<span class="k2">(</span><span class="s">"Failure to load primitives!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  48</span>  <span class="k2">}</span>
<span class="number">  49</span>  Message<span class="k2">(</span><span class="s">"Primatives addon loaded successfully\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</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>
<span class="number">  51</span>    AbortGame<span class="k2">(</span><span class="s">"Failure to initialize image handler\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span>  <span class="k2">}</span>
<span class="number">  53</span>  Message<span class="k2">(</span><span class="s">"Image addon initialized successfully!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  54</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">  55</span>  Message<span class="k2">(</span><span class="s">"Font addon load completed. Hope it worked.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  56</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">{</span>
<span class="number">  57</span>    AbortGame<span class="k2">(</span><span class="s">"Failure to load font reader!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  58</span>  <span class="k2">}</span>
<span class="number">  59</span>  Message<span class="k2">(</span><span class="s">"True Type Font addon initialized successfully\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</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="k2">{</span>
<span class="number">  61</span>    AbortGame<span class="k2">(</span><span class="s">"Failure to load sound\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>  <span class="k2">}</span>
<span class="number">  63</span>  Message<span class="k2">(</span><span class="s">"Audio installed successfully\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</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="k2">{</span>
<span class="number">  65</span>    AbortGame<span class="k2">(</span><span class="s">"Audio Codec Failure!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  66</span>  <span class="k2">}</span>
<span class="number">  67</span>  Message<span class="k2">(</span><span class="s">"Audio Codec (LibVorbis) loaded successfully\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  69</span><span class="k2">}</span>
<span class="number">  70</span>
<span class="number">  71</span><span class="k1">void</span> SetUpGame<span class="k2">(</span><span class="k2">)</span>
<span class="number">  72</span><span class="k2">{</span>
<span class="number">  73</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a> <span class="k3">=</span> SetUpLog<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>  display <span class="k3">=</span> SetUpDisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>  timer <span class="k3">=</span> SetUpTimer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>  screenWidth <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_width"><span class="a">al_get_display_width</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</span>  screenHeight <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_display_height"><span class="a">al_get_display_height</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  78</span>  screenBuffer <span class="k3">=</span> SetUpScreenBuffer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  79</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">  80</span>  SetUpEvents<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>  <span class="c">//al_hide_mouse_cursor(display);</span>
<span class="number">  82</span><span class="k2">}</span>
<span class="number">  83</span>
<span class="number">  84</span><a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> SetUpTimer<span class="k2">(</span><span class="k2">)</span>
<span class="number">  85</span><span class="k2">{</span>
<span class="number">  86</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a> <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">  87</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  88</span>    AbortGame<span class="k2">(</span><span class="s">"Failed to create timer\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>  <span class="k2">}</span>
<span class="number">  90</span>  Message<span class="k2">(</span><span class="s">"Timer created successfully\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  91</span>  <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">;</span>
<span class="number">  92</span><span class="k2">}</span>
<span class="number">  93</span>
<span class="number">  94</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> SetUpDisplay<span class="k2">(</span><span class="k2">)</span>
<span class="number">  95</span><span class="k2">{</span>
<span class="number">  96</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>disp <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  97</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY_MODE"><span class="a">ALLEGRO_DISPLAY_MODE</span></a> disp_data<span class="k2">;</span>
<span class="number">  98</span>  <a href="http://www.allegro.cc/manual/al_get_display_mode"><span class="a">al_get_display_mode</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_num_display_modes"><span class="a">al_get_num_display_modes</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span>, <span class="k3">&amp;</span>disp_data<span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>  Message<span class="k2">(</span><span class="s">"Display resolution enunciated successfully: width:"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</span>  <span class="k1">char</span> buffer<span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 101</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_737.html" target="_blank">sprintf</a><span class="k2">(</span>buffer,<span class="s">"%d height: %d\n"</span>,disp_data.width,disp_data.height<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</span>  Message<span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span>  <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_FULLSCREEN_WINDOW<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 104</span>  disp <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>disp_data.width, disp_data.height<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 105</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>disp<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 106</span>        AbortGame<span class="k2">(</span><span class="s">"Failed to create display"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 107</span>  <span class="k2">}</span>
<span class="number"> 108</span>  Message<span class="k2">(</span><span class="s">"Display created successfully, width:"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_737.html" target="_blank">sprintf</a><span class="k2">(</span>buffer,<span class="s">"%d height: %d\n"</span>,<a href="http://www.allegro.cc/manual/al_get_display_width"><span class="a">al_get_display_width</span></a><span class="k2">(</span>disp<span class="k2">)</span>,<a href="http://www.allegro.cc/manual/al_get_display_height"><span class="a">al_get_display_height</span></a><span class="k2">(</span>disp<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>  Message<span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</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">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>  <span class="k1">return</span> disp<span class="k2">;</span>
<span class="number"> 113</span><span class="k2">}</span>
<span class="number"> 114</span>
<span class="number"> 115</span><span class="k1">void</span> AbortGame<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> message<span class="k2">)</span>
<span class="number"> 116</span><span class="k2">{</span>
<span class="number"> 117</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s \n"</span>, message<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a>, <span class="s">"%s \n"</span>, message<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</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>display, <span class="s">"Error!"</span>, <span class="s">"Error! :O "</span>, message, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 122</span><span class="k2">}</span>
<span class="number"> 123</span>
<span class="number"> 124</span>FILE<span class="k3">*</span> SetUpLog<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 125</span><span class="k2">{</span>
<span class="number"> 126</span>  FILE <span class="k3">*</span>fp <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 127</span>  fp <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"log.log"</span>,<span class="s">"w"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>fp, <span class="s">"Game started\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 129</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Game started\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>  <span class="k1">return</span> fp<span class="k2">;</span>
<span class="number"> 131</span><span class="k2">}</span>
<span class="number"> 132</span>
<span class="number"> 133</span><span class="k1">void</span> Message<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> message<span class="k2">)</span>
<span class="number"> 134</span><span class="k2">{</span>
<span class="number"> 135</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span>message<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 136</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a>,message<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</span>  <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 138</span><span class="k2">}</span>
<span class="number"> 139</span>
<span class="number"> 140</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> SetUpScreenBuffer<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 141</span><span class="k2">{</span>
<span class="number"> 142</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_bitmap"><span class="a">al_create_bitmap</span></a><span class="k2">(</span>bufferWidth,bufferHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 143</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>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 144</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>buffer<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 145</span>    AbortGame<span class="k2">(</span><span class="s">"Error setting up screen buffer\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 146</span>  <span class="k2">}</span>
<span class="number"> 147</span>  Message<span class="k2">(</span><span class="s">"Buffer created successfully, 1920x1080 used.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 148</span>  <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_bitmap_flags"><span class="a">al_get_bitmap_flags</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">)</span><span class="k3">&amp;</span><span class="k2">(</span>ALLEGRO_VIDEO_BITMAP<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 149</span>    Message<span class="k2">(</span><span class="s">"Buffer has video accelleration - Good.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 150</span>  <span class="k2">}</span> <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 151</span>    Message<span class="k2">(</span><span class="s">"Buffer does NOT have video accelleration - BAD, but not fatal.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 152</span>  <span class="k2">}</span>
<span class="number"> 153</span>  <span class="k1">return</span> buffer<span class="k2">;</span>
<span class="number"> 154</span><span class="k2">}</span>
<span class="number"> 155</span>
<span class="number"> 156</span><span class="k1">void</span> ExitGame<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>message<span class="k2">)</span>
<span class="number"> 157</span><span class="k2">{</span>
<span class="number"> 158</span>  <span class="k1">char</span> buffer<span class="k2">[</span><span class="n">20</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 159</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_737.html" target="_blank">sprintf</a><span class="k2">(</span>buffer,<span class="s">"Game is closing...%s\n"</span>,message<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 160</span>  Message<span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 161</span>  Message<span class="k2">(</span><span class="s">"Destroying buffer...\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 162</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>screenBuffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 163</span>  Message<span class="k2">(</span><span class="s">"Buffer Destroyed\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 164</span>  Message<span class="k2">(</span><span class="s">"Destroying display...\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 165</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"> 166</span>  Message<span class="k2">(</span><span class="s">"Display and buffer gone, exiting...\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 167</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 168</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">0</span><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">void</span> DisplayBuffer<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 172</span><span class="k2">{</span>
<span class="number"> 173</span>  <a href="http://www.allegro.cc/manual/al_set_target_backbuffer"><span class="a">al_set_target_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 174</span>  <span class="c">//al_clear_to_color(al_map_rgb(0,0,0));</span>
<span class="number"> 175</span>  <span class="c">//al_draw_scaled_bitmap(screenBuffer, 0, 0, bufferWidth, bufferHeight, scaleX, scaleY, scaleW, scaleH, 0);</span>
<span class="number"> 176</span>  <a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a><span class="k2">(</span>screenBuffer,<span class="n">0</span>,<span class="n">0</span>,bufferWidth,bufferHeight,<span class="n">0</span>,<span class="n">0</span>,screenWidth,screenHeight,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 177</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"> 178</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>screenBuffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 179</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">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 180</span><span class="k2">}</span>
<span class="number"> 181</span>
<span class="number"> 182</span><span class="k1">void</span> SetUpEvents<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 183</span><span class="k2">{</span>
<span class="number"> 184</span>  eventQueue <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"> 185</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>eventQueue,<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"> 186</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>eventQueue,<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"> 187</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>eventQueue,<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"> 188</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>eventQueue,<a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 189</span>  <span class="c">//This ^ line can be commented out to prevent INSANE lag</span>
<span class="number"> 190</span><span class="k2">}</span>
</div></div><p>
I am seriously confused, <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /> because I&#39;m not lacking anything that the tutorial is doing, but mine doesn&#39;t work, and theirs does. I don&#39;t like copy-pasting, and would prefer to understand WHY this code is malfunctioning, so I can learn from it.<br />In need of help,<br />RazorSharpFang
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (RazorSharpFang)</author>
		<pubDate>Tue, 31 Jul 2012 21:20:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What&#39;s the output on allegro.log?<br />Also, does the message &quot;Sample loaded&quot; appears on your log? If it does, you might wanna check if the sample pointer is not NULL.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Cassio Renan)</author>
		<pubDate>Wed, 01 Aug 2012 00:09:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I do not get the Message &quot;Sample loaded&quot; in my log,<br />and I was not aware that allegro used a log...<br />Is that only in the debug version?<br />It wouldn&#39;t matter if I tested the sample to be null after I loaded the sample,<br />because it crashes before I can test.<br />I am confuzled.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (RazorSharpFang)</author>
		<pubDate>Wed, 01 Aug 2012 09:17:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Not really related to your problem, but is there some particular reason you keep the definitions of your functions in a header file (that doesn&#39;t have header guards either)?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Itachihro)</author>
		<pubDate>Wed, 01 Aug 2012 17:47:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Quite personally, I like my main function file, and main loop function files to be as clean as possible. My previous one was a disaster, totally uncluttered, and I couldn&#39;t debug my code when it came down to it.<br />It&#39;s a personal choice, and I am fond of it.<br />Organization, yay!<br />Also, what&#39;s a header guard?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (RazorSharpFang)</author>
		<pubDate>Wed, 01 Aug 2012 19:53:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Unfortunately, your personal choice is wrong.</p><p>Now, splitting up code into multiple files is a good thing - but doing it by putting your code in files that you <span class="source-code"><span class="p">#include</span></span> is not. Use header files for declarations only, and keep your definitions in .c/.cpp files.</p><p>There are plenty of reasons for this, which someone with more time than I have right now can fill you in on, so I&#39;ll just give you the one you&#39;ll notice right away: you won&#39;t need to recompile everything whenever you change something. You just recompile the specific source file(s) you&#39;ve edited.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/610732/961812#target">RazorSharpFang</a> said:</div><div class="quote"><p>Also, what&#39;s a header guard?</p></div></div><p>
A header guard prevents a header from being included more than once. Typically, something like:
</p><div class="source-code"><div class="toolbar"><span class="name">foo.h</span><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">#ifndef FOO_H</span>
<span class="number"> 2</span><span class="p">#define FOO_H</span>
<span class="number"> 3</span>
<span class="number"> 4</span><span class="c">// Declarations here</span>
<span class="number"> 5</span>
<span class="number"> 6</span><span class="p">#endif</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Wed, 01 Aug 2012 20:07:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>OH! Is that why we have header files?<br />This makes so much more sense now!<br />I totally thought that header files and C/Cpp files were equivalent!<br /><b>smacks himself in stupidity</b><br />Perhaps some reorganization is in order.<br />Thanks for your advice, gnolam. Maybe now I can be less wrong.<br />.....<br />Though, admittedly it would be nice to solve the problem I came here for...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (RazorSharpFang)</author>
		<pubDate>Wed, 01 Aug 2012 21:08:52 +0000</pubDate>
	</item>
</rss>
