<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Help me!</title>
		<link>http://www.allegro.cc/forums/view/613965</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 04 Mar 2014 17:53:21 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello,</p><p>I have been working on a game for a few days now but keep coming across problems where it says unhandled exception.<br />I have come to the realization they are all caused by the same problem.</p><p>-&quot;allegro-5.0.7-monolith-md-debug.pdb not loaded&quot;<br />-&quot;allegro-5.0.7-monolith-md-debug.pdb contains the debug information required to find the source for the module allegro-5.0.7-monolit-md-debug.dll&quot;</p><p>I have included an image of the error it&#39;s throwing.</p><p>Any help with this issue would be great because i just have no idea how to go about fixing it.:&#39;(</p><p>The program falls apart when this code is called for the second time;</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="k1">bool</span> got_event <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_next_event"><span class="a">al_get_next_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>allegro_event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 2</span>  
<span class="number"> 3</span>  <span class="k1">if</span> <span class="k2">(</span>got_event <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span> <span class="k1">return</span><span class="k2">;</span> <span class="c">// no event waiting</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tremendoustoast)</author>
		<pubDate>Fri, 28 Feb 2014 00:19:47 +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/613965/997041#target">tremendoustoast</a> said:</div><div class="quote"><p>
I have been working on a game for a few days now but keep coming across problems where it says unhandled exception.<br />I have come to the realization they are all caused by the same problem.
</p></div></div><p>
Use your debugger and see what line it is crashing on. Your image says line 70. Show us your code with &lt;code&gt;code goes here...&lt;/code&gt; tags.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
-&quot;allegro-5.0.7-monolith-md-debug.pdb not loaded&quot;<br />-&quot;allegro-5.0.7-monolith-md-debug.pdb contains the debug information required to find the source for the module allegro-5.0.7-monolit-md-debug.dll&quot;
</p></div></div><p>
All it means is there is no associated pdb debugging file to go along with the dll. A pdb file contains debugging symbols so you can tell where it is crashing.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
The program falls apart when this code is called for the second time;
</p></div></div><p>
If it is crashing on al_get_next_event, then allegro hasn&#39;t been initialized, or the event queue is invalid, or the address of the event is invalid. I don&#39;t think that is really what is wrong though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 28 Feb 2014 00:27:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks for the reply,<br />The program crashes on the first line of the code I&#39;ve already shown you.</p><p>The code is for a class I&#39;ve called AllegroStart.</p><p>What i want the class to do is to handle the initialization of allegro as well as event handling, the problem i&#39;m having has started occurring since trying to include a timer in the program.</p><p>Here is the entire Class;<br />Header File-</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">#pragma once</span>
<span class="number">  2</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
<span class="number">  4</span><span class="p">#include &lt;string&gt;</span>
<span class="number">  5</span><span class="p">#include&lt;iostream&gt;</span>
<span class="number">  6</span><span class="p">#include "conio.h"</span>
<span class="number">  7</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span><span class="k1">class</span> AllegroStart
<span class="number"> 10</span><span class="k2">{</span>
<span class="number"> 11</span>private:
<span class="number"> 12</span>  <span class="k1">enum</span> KEYS_PRESSED_LIST
<span class="number"> 13</span>  <span class="k2">{</span>
<span class="number"> 14</span>    KEY_ESCAPE, KEY_W, KEY_A, KEY_S, KEY_D, KEY_F, SIZE_OF_KEYS_PRESSED_ENUM
<span class="number"> 15</span>  <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 16</span>
<span class="number"> 17</span>  <span class="k1">bool</span> keys_pressed<span class="k2">[</span>SIZE_OF_KEYS_PRESSED_ENUM<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 18</span>
<span class="number"> 19</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 20</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> NULL<span class="k2">;</span>
<span class="number"> 21</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bitmap <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 22</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bitmap_with_transparency <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 23</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> timer <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 24</span>  <span class="k1">int</span> frames_per_second <span class="k3">=</span> <span class="n">60</span><span class="k2">;</span>
<span class="number"> 25</span>  <span class="k1">bool</span> update_logic <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 26</span>  <span class="k1">bool</span> render_frame <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 27</span>  <span class="k1">int</span> consecutive_logic_updates <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 28</span>  <span class="k1">int</span> max_consecutive_logic_updates <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 29</span>
<span class="number"> 30</span>
<span class="number"> 31</span>public:
<span class="number"> 32</span>  <span class="c">// Method declarations</span>
<span class="number"> 33</span>  AllegroStart<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>  <span class="k1">int</span> initialise_allegro<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>  <span class="k1">void</span> process_events<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> StartTimer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span>  <span class="k1">bool</span> DoLogic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>  <span class="k1">bool</span> DoRender<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>  <span class="k1">bool</span> PressedEscape<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>  <span class="k1">bool</span> PressedW<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>  <span class="k1">bool</span> PressedA<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span>  <span class="k1">bool</span> PressedS<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>  <span class="k1">bool</span> PressedD<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 44</span>  <span class="k1">bool</span> PressedF<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 45</span>  ~AllegroStart<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 46</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>

.cpp file
</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 "AllegroStart.h"</span>
<span class="number">   2</span>
<span class="number">   3</span>AllegroStart::AllegroStart<span class="k2">(</span><span class="k2">)</span>
<span class="number">   4</span><span class="k2">{</span>
<span class="number">   5</span>  frames_per_second <span class="k3">=</span> <span class="n">60</span><span class="k2">;</span>
<span class="number">   6</span>  update_logic <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">   7</span>  render_frame <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">   8</span>  consecutive_logic_updates <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">   9</span>  max_consecutive_logic_updates <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  10</span><span class="k2">}</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="k1">int</span> AllegroStart::initialise_allegro<span class="k2">(</span><span class="k2">)</span>
<span class="number">  13</span><span class="k2">{</span>
<span class="number">  14</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">  15</span>  <span class="k2">{</span>
<span class="number">  16</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Allegro initialisation failed"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  17</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Press any key to exit"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  18</span>    _getch<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  20</span>  <span class="k2">}</span>
<span class="number">  21</span>
<span class="number">  22</span>  <span class="c">// tell allegro program needs keyboard input</span>
<span class="number">  23</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="number">  24</span>  <span class="k2">{</span>
<span class="number">  25</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Keyboard initialisation failed"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  26</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Press any key to exit"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  27</span>    _getch<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  28</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  29</span>  <span class="k2">}</span>
<span class="number">  30</span>
<span class="number">  31</span>  <span class="c">// initialise keypress array</span>
<span class="number">  32</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_OF_KEYS_PRESSED_ENUM<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  33</span>  <span class="k2">{</span>
<span class="number">  34</span>    keys_pressed<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  35</span>  <span class="k2">}</span>
<span class="number">  36</span>
<span class="number">  37</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><span class="n">800</span>, <span class="n">640</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// create a display window of size 640 by 480</span>
<span class="number">  38</span>
<span class="number">  39</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  40</span>  <span class="k2">{</span>
<span class="number">  41</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Display initialisation failed"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  42</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Press any key to exit"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  43</span>    _getch<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  45</span>  <span class="k2">}</span>
<span class="number">  46</span>
<span class="number">  47</span>  <a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a><span class="k2">(</span>display, <span class="n">250</span>, <span class="n">50</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// position display window on screen</span>
<span class="number">  48</span>
<span class="number">  49</span>  <span class="c">// need to create an event queue so allegro can respond to events, such as keypresses</span>
<span class="number">  50</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">  51</span>
<span class="number">  52</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>event_queue<span class="k2">)</span>
<span class="number">  53</span>  <span class="k2">{</span>
<span class="number">  54</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Event queue creation failed"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  55</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Press any key to exit"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  56</span>    _getch<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</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">  58</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  59</span>  <span class="k2">}</span>
<span class="number">  60</span>
<span class="number">  61</span>  <span class="c">// register  display with the event queue, so display change events can be processed</span>
<span class="number">  62</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">  63</span>
<span class="number">  64</span>  <span class="c">// register keyboard with the event queue, so keypress events can be processed</span>
<span class="number">  65</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">  66</span>  
<span class="number">  67</span>  <span class="c">// creates a timer</span>
<span class="number">  68</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> frames_per_second<span class="k2">)</span><span class="k2">;</span> 
<span class="number">  69</span>
<span class="number">  70</span>  <span class="c">//register Timer with the event queue</span>
<span class="number">  71</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">  72</span>
<span class="number">  73</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  74</span><span class="k2">}</span>
<span class="number">  75</span>
<span class="number">  76</span><span class="k1">void</span> AllegroStart::process_events<span class="k2">(</span><span class="k2">)</span>
<span class="number">  77</span><span class="k2">{</span>
<span class="number">  78</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> allegro_event<span class="k2">;</span>
<span class="number">  79</span>
<span class="number">  80</span>  <span class="c">// get the next event from the event queue</span>
<span class="number">  81</span>  <span class="k1">bool</span> got_event <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_next_event"><span class="a">al_get_next_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>allegro_event<span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>  
<span class="number">  83</span>  <span class="k1">if</span> <span class="k2">(</span>got_event <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span> <span class="k1">return</span><span class="k2">;</span> <span class="c">// no event waiting</span>
<span class="number">  84</span>
<span class="number">  85</span>  <span class="c">// test if a key is pressed down, update global keypress array</span>
<span class="number">  86</span>  <span class="k1">if</span> <span class="k2">(</span>allegro_event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number">  87</span>  <span class="k2">{</span>
<span class="number">  88</span>    <span class="k1">switch</span> <span class="k2">(</span>allegro_event.keyboard.keycode<span class="k2">)</span>
<span class="number">  89</span>    <span class="k2">{</span>
<span class="number">  90</span>    <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number">  91</span>      keys_pressed<span class="k2">[</span>KEY_ESCAPE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  92</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number">  93</span>    <span class="k1">case</span> ALLEGRO_KEY_W:
<span class="number">  94</span>      keys_pressed<span class="k2">[</span>KEY_W<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  95</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number">  96</span>    <span class="k1">case</span> ALLEGRO_KEY_A:
<span class="number">  97</span>      keys_pressed<span class="k2">[</span>KEY_A<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  98</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number">  99</span>    <span class="k1">case</span> ALLEGRO_KEY_S:
<span class="number"> 100</span>      keys_pressed<span class="k2">[</span>KEY_S<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 101</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 102</span>    <span class="k1">case</span> ALLEGRO_KEY_D:
<span class="number"> 103</span>      keys_pressed<span class="k2">[</span>KEY_D<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 104</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 105</span>    <span class="k1">case</span> ALLEGRO_KEY_F:
<span class="number"> 106</span>      keys_pressed<span class="k2">[</span>KEY_F<span class="k2">]</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 107</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 108</span>    <span class="k2">}</span>
<span class="number"> 109</span>  <span class="k2">}</span>
<span class="number"> 110</span>  <span class="c">// Test if a key is let go, update global keypress array</span>
<span class="number"> 111</span>  <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>allegro_event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 112</span>  <span class="k2">{</span>
<span class="number"> 113</span>    <span class="k1">switch</span> <span class="k2">(</span>allegro_event.keyboard.keycode<span class="k2">)</span>
<span class="number"> 114</span>    <span class="k2">{</span>
<span class="number"> 115</span>    <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 116</span>      keys_pressed<span class="k2">[</span>KEY_ESCAPE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 117</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 118</span>    <span class="k1">case</span> ALLEGRO_KEY_W:
<span class="number"> 119</span>      keys_pressed<span class="k2">[</span>KEY_W<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 120</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 121</span>    <span class="k1">case</span> ALLEGRO_KEY_A:
<span class="number"> 122</span>      keys_pressed<span class="k2">[</span>KEY_A<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 123</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 124</span>    <span class="k1">case</span> ALLEGRO_KEY_S:
<span class="number"> 125</span>      keys_pressed<span class="k2">[</span>KEY_S<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 126</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 127</span>    <span class="k1">case</span> ALLEGRO_KEY_D:
<span class="number"> 128</span>      keys_pressed<span class="k2">[</span>KEY_D<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 129</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 130</span>    <span class="k1">case</span> ALLEGRO_KEY_F:
<span class="number"> 131</span>      keys_pressed<span class="k2">[</span>KEY_F<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 132</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 133</span>    <span class="k2">}</span>
<span class="number"> 134</span>  <span class="k2">}</span>
<span class="number"> 135</span>  <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>got_event <span class="k3">&amp;</span><span class="k3">&amp;</span> allegro_event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<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="c">// if logic taking too long ensures frame is rendered occasionally and input is responsive</span>
<span class="number"> 139</span><span class="c">// this essentially ignores logic updates if there are a lot of consecutive ones</span>
<span class="number"> 140</span>
<span class="number"> 141</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">+</span><span class="k3">+</span>consecutive_logic_updates <span class="k3">&lt;</span> max_consecutive_logic_updates<span class="k2">)</span>
<span class="number"> 142</span>  <span class="k2">{</span>
<span class="number"> 143</span>    update_logic <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 144</span>  <span class="k2">}</span>
<span class="number"> 145</span>
<span class="number"> 146</span>  <span class="c">// only render frame if no events left to process</span>
<span class="number"> 147</span>  <span class="k1">if</span><span class="k2">(</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"> 148</span>  <span class="k2">{</span>
<span class="number"> 149</span>    render_frame <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 150</span>    consecutive_logic_updates<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number"> 151</span>  <span class="k2">}</span>
<span class="number"> 152</span><span class="k2">}</span>
<span class="number"> 153</span>
<span class="number"> 154</span><span class="k2">}</span>
<span class="number"> 155</span>
<span class="number"> 156</span><a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> AllegroStart::StartTimer<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 157</span><span class="k2">{</span>
<span class="number"> 158</span>  <span class="k1">return</span> timer<span class="k2">;</span>
<span class="number"> 159</span><span class="k2">}</span>
<span class="number"> 160</span>
<span class="number"> 161</span><span class="k1">bool</span> AllegroStart::DoLogic<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 162</span><span class="k2">{</span>
<span class="number"> 163</span>  <span class="k1">if</span> <span class="k2">(</span>update_logic<span class="k2">)</span>
<span class="number"> 164</span>  <span class="k2">{</span>
<span class="number"> 165</span>    <span class="k1">return</span> update_logic<span class="k2">;</span>
<span class="number"> 166</span>    update_logic <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 167</span>  <span class="k2">}</span>
<span class="number"> 168</span><span class="k2">}</span>
<span class="number"> 169</span>
<span class="number"> 170</span><span class="k1">bool</span> AllegroStart::DoRender<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 171</span><span class="k2">{</span>
<span class="number"> 172</span>  <span class="k1">if</span><span class="k2">(</span>render_frame<span class="k2">)</span>
<span class="number"> 173</span>  <span class="k2">{</span>
<span class="number"> 174</span>  
<span class="number"> 175</span>  <span class="k1">return</span> render_frame<span class="k2">;</span>
<span class="number"> 176</span>  render_frame <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 177</span>  <span class="k2">}</span>
<span class="number"> 178</span><span class="k2">}</span>
<span class="number"> 179</span><span class="k1">bool</span> AllegroStart::PressedEscape<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 180</span><span class="k2">{</span>
<span class="number"> 181</span>  <span class="k1">return</span> keys_pressed<span class="k2">[</span>KEY_ESCAPE<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 182</span><span class="k2">}</span>
<span class="number"> 183</span>
<span class="number"> 184</span><span class="k1">bool</span> AllegroStart::PressedW<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 185</span><span class="k2">{</span>
<span class="number"> 186</span>  <span class="k1">return</span> keys_pressed<span class="k2">[</span>KEY_W<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 187</span><span class="k2">}</span>
<span class="number"> 188</span><span class="k1">bool</span> AllegroStart::PressedA<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 189</span><span class="k2">{</span>
<span class="number"> 190</span>  <span class="k1">return</span> keys_pressed<span class="k2">[</span>KEY_A<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 191</span><span class="k2">}</span>
<span class="number"> 192</span><span class="k1">bool</span> AllegroStart::PressedS<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 193</span><span class="k2">{</span>
<span class="number"> 194</span>  <span class="k1">return</span> keys_pressed<span class="k2">[</span>KEY_S<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 195</span><span class="k2">}</span>
<span class="number"> 196</span>
<span class="number"> 197</span><span class="k1">bool</span> AllegroStart::PressedD<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 198</span><span class="k2">{</span>
<span class="number"> 199</span>  <span class="k1">return</span> keys_pressed<span class="k2">[</span>KEY_D<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 200</span><span class="k2">}</span>
<span class="number"> 201</span>
<span class="number"> 202</span><span class="k1">bool</span> AllegroStart::PressedF<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 203</span><span class="k2">{</span>
<span class="number"> 204</span>  <span class="k1">return</span> keys_pressed<span class="k2">[</span>KEY_F<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 205</span><span class="k2">}</span>
<span class="number"> 206</span>
<span class="number"> 207</span>
<span class="number"> 208</span>AllegroStart::~AllegroStart<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 209</span><span class="k2">{</span>
<span class="number"> 210</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"> 211</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"> 212</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"> 213</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tremendoustoast)</author>
		<pubDate>Fri, 28 Feb 2014 01:01:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I haven&#39;t looked super closely but you may be making a copy of your AllegroStart object. If that happens, the destructor will be called which will shutdown allegro which will make any further calls to allegro functions fail.</p><p>Show the code where you use your AllegroStart object.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 28 Feb 2014 01:06:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>AllegroStart is only used in my main.cpp source file, here is the code from that file (i know, it&#39;s messy, all a work it progress!!)</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;iostream&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;vector&gt;</span>
<span class="number">   5</span><span class="p">#include "conio.h"</span>
<span class="number">   6</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">   7</span>
<span class="number">   8</span><span class="p">#include "AllegroStart.h"</span>
<span class="number">   9</span><span class="p">#include "Creature.h"</span>
<span class="number">  10</span><span class="p">#include "Projectile.h"</span>
<span class="number">  11</span><span class="p">#include "Hero.h"</span>
<span class="number">  12</span><span class="p">#include "Monster.h"</span>
<span class="number">  13</span><span class="p">#include "Arena.h"</span>
<span class="number">  14</span>AllegroStart<span class="k3">*</span> alleg<span class="k2">;</span>
<span class="number">  15</span>Projectile<span class="k3">*</span> projectiles<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  16</span>Hero<span class="k3">*</span> Hero1<span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span>Monster<span class="k3">*</span> Monster1<span class="k2">;</span>
<span class="number">  19</span>Monster<span class="k3">*</span> Monster2<span class="k2">;</span>
<span class="number">  20</span>Monster<span class="k3">*</span> Monster3<span class="k2">;</span>
<span class="number">  21</span>Monster<span class="k3">*</span> Monster4<span class="k2">;</span>
<span class="number">  22</span>vector<span class="k3">&lt;</span>Monster<span class="k3">*</span><span class="k3">&gt;</span> MonsterVector<span class="k2">;</span>
<span class="number">  23</span>Arena<span class="k3">*</span> Arena1<span class="k2">;</span>
<span class="number">  24</span><span class="k1">void</span> Logic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span><span class="k1">void</span> Render<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  26</span>
<span class="number">  27</span><span class="k1">int</span> bum <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  28</span><span class="k1">int</span> man<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  29</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  30</span>
<span class="number">  31</span><span class="k2">{</span>
<span class="number">  32</span>  alleg <span class="k3">=</span> <span class="k1">new</span> AllegroStart<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>  Hero1 <span class="k3">=</span> <span class="k1">new</span> Hero<span class="k2">(</span><span class="n">5</span>, <span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/PlaceHolderDude.bmp"</span>, <span class="n">200</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  34</span>  Arena1 <span class="k3">=</span> <span class="k1">new</span> Arena<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>  Monster1 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>  Monster2 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>  Monster3 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>  Monster4 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>
<span class="number">  40</span>  MonsterVector.push_back<span class="k2">(</span>Monster1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  41</span>  MonsterVector.push_back<span class="k2">(</span>Monster2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>  MonsterVector.push_back<span class="k2">(</span>Monster3<span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span>  MonsterVector.push_back<span class="k2">(</span>Monster4<span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</span>  <span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  46</span>  
<span class="number">  47</span>
<span class="number">  48</span>  <span class="k1">while</span> <span class="k2">(</span>x <span class="k3">&lt;</span> <span class="n">4</span><span class="k2">)</span>
<span class="number">  49</span>  <span class="k2">{</span>
<span class="number">  50</span>    projectiles<span class="k2">[</span>x<span class="k2">]</span> <span class="k3">=</span> <span class="k1">new</span> Projectile<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</span>    projectiles<span class="k2">[</span>x<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>SetValues<span class="k2">(</span><span class="n">10</span>, <span class="n">1</span>, <span class="n">1</span>, <span class="n">1</span>, <span class="s">"assets/Bullet.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span>    x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  53</span>  <span class="k2">}</span>
<span class="number">  54</span>
<span class="number">  55</span>  <span class="c">// initialise everything</span>
<span class="number">  56</span>  <span class="k1">bool</span> init_ok <span class="k3">=</span> alleg-&gt;initialise_allegro<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span>
<span class="number">  58</span>  <span class="k1">if</span> <span class="k2">(</span>init_ok <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  59</span>  <span class="k2">{</span>
<span class="number">  60</span>    <span class="k1">return</span> init_ok<span class="k2">;</span> <span class="c">// exit if init failed</span>
<span class="number">  61</span>  <span class="k2">}</span>
<span class="number">  62</span>
<span class="number">  63</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>alleg-&gt;StartTimer<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>
<span class="number">  65</span>  <span class="c">// loop until escape key is pressed</span>
<span class="number">  66</span>  <span class="k1">while</span> <span class="k2">(</span>x<span class="k3">&lt;</span><span class="n">5</span><span class="k2">)</span> <span class="c">// changed this for debugging purposes!</span>
<span class="number">  67</span>  <span class="k2">{</span>
<span class="number">  68</span>    alleg-&gt;process_events<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// deal with events, such as mouse and keyboard input</span>
<span class="number">  69</span>
<span class="number">  70</span>    <span class="k1">if</span><span class="k2">(</span>alleg-&gt;DoLogic<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  71</span>    <span class="k2">{</span>
<span class="number">  72</span>
<span class="number">  73</span>      Logic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>    <span class="k2">}</span>
<span class="number">  75</span>    <span class="k1">if</span><span class="k2">(</span>alleg-&gt;DoRender<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  76</span>    <span class="k2">{</span>
<span class="number">  77</span>      Render<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  78</span>    <span class="k2">}</span>
<span class="number">  79</span>
<span class="number">  80</span>  <span class="k2">}</span>
<span class="number">  81</span>
<span class="number">  82</span>  alleg-&gt;~AllegroStart<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>
<span class="number">  84</span>  <span class="k1">delete</span> alleg<span class="k2">;</span>
<span class="number">  85</span>
<span class="number">  86</span>  <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> count <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> count <span class="k3">&lt;</span> MonsterVector.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> count<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  87</span>  <span class="k2">{</span>
<span class="number">  88</span>
<span class="number">  89</span>    MonsterVector<span class="k2">[</span>count<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>~Monster<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>    <span class="k1">delete</span> MonsterVector<span class="k2">[</span>count<span class="k2">]</span><span class="k2">;</span>
<span class="number">  91</span>  <span class="k2">}</span>
<span class="number">  92</span>
<span class="number">  93</span>  Hero1-&gt;~Hero<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</span>  <span class="k1">delete</span> Hero1<span class="k2">;</span>
<span class="number">  95</span>
<span class="number">  96</span>  <span class="k1">int</span> g <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  97</span>  <span class="k1">while</span> <span class="k2">(</span>g <span class="k3">&lt;</span> <span class="n">4</span><span class="k2">)</span>
<span class="number">  98</span>  <span class="k2">{</span>
<span class="number">  99</span>    projectiles<span class="k2">[</span>g<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>~Projectile<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</span>
<span class="number"> 101</span>    g<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 102</span>    
<span class="number"> 103</span>  <span class="k2">}</span>
<span class="number"> 104</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 105</span><span class="k2">}</span>
<span class="number"> 106</span>
<span class="number"> 107</span>
<span class="number"> 108</span>  <span class="k1">void</span> Logic<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 109</span>    <span class="k2">{</span>
<span class="number"> 110</span>
<span class="number"> 111</span>    <span class="c">// check keys pressed to update variables</span>
<span class="number"> 112</span>    <span class="k1">if</span> <span class="k2">(</span>alleg-&gt;PressedW<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 113</span>    <span class="k2">{</span>
<span class="number"> 114</span>      Hero1-&gt;Up<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 115</span>    <span class="k2">}</span>
<span class="number"> 116</span>
<span class="number"> 117</span>    <span class="k1">if</span> <span class="k2">(</span>alleg-&gt;PressedA<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 118</span>    <span class="k2">{</span>
<span class="number"> 119</span>      Hero1-&gt;Left<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>    <span class="k2">}</span>
<span class="number"> 121</span>
<span class="number"> 122</span>    <span class="k1">if</span> <span class="k2">(</span>alleg-&gt;PressedS<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 123</span>    <span class="k2">{</span>
<span class="number"> 124</span>      Hero1-&gt;Down<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>    <span class="k2">}</span>
<span class="number"> 126</span>
<span class="number"> 127</span>    <span class="k1">if</span> <span class="k2">(</span>alleg-&gt;PressedD<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 128</span>    <span class="k2">{</span>
<span class="number"> 129</span>      Hero1-&gt;Right<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>    <span class="k2">}</span>
<span class="number"> 131</span>
<span class="number"> 132</span>    <span class="k1">if</span> <span class="k2">(</span>alleg-&gt;PressedF<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 133</span>    <span class="k2">{</span>
<span class="number"> 134</span>      <span class="k1">if</span> <span class="k2">(</span>bum <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 135</span>      <span class="k2">{</span>
<span class="number"> 136</span>
<span class="number"> 137</span>        <span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 138</span>        <span class="k1">int</span> count <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 139</span>
<span class="number"> 140</span>        <span class="k1">while</span> <span class="k2">(</span>y<span class="k3">&lt;</span><span class="n">4</span><span class="k2">)</span>
<span class="number"> 141</span>        <span class="k2">{</span>
<span class="number"> 142</span>          <span class="k1">if</span> <span class="k2">(</span>count&gt;0<span class="k2">)</span>
<span class="number"> 143</span>          <span class="k2">{</span>
<span class="number"> 144</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>projectiles<span class="k2">[</span>y<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>isFiring<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 145</span>            <span class="k2">{</span>
<span class="number"> 146</span>              projectiles<span class="k2">[</span>y<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>Fire<span class="k2">(</span><span class="n">1</span>, Hero1-&gt;Getx<span class="k2">(</span><span class="k2">)</span>, Hero1-&gt;Gety<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 147</span>              bum <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 148</span>              man<span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> <span class="n">50</span><span class="k2">;</span>
<span class="number"> 149</span>              count--<span class="k2">;</span>
<span class="number"> 150</span>            <span class="k2">}</span>
<span class="number"> 151</span>          <span class="k2">}</span>
<span class="number"> 152</span>
<span class="number"> 153</span>          y<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 154</span>        <span class="k2">}</span>
<span class="number"> 155</span>      <span class="k2">}</span>
<span class="number"> 156</span>    <span class="k2">}</span>
<span class="number"> 157</span>
<span class="number"> 158</span>    <span class="k1">if</span> <span class="k2">(</span>bum <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 159</span>    <span class="k2">{</span>
<span class="number"> 160</span>      bum--<span class="k2">;</span>
<span class="number"> 161</span>    <span class="k2">}</span>
<span class="number"> 162</span>    
<span class="number"> 163</span>    <span class="k1">int</span> p <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 164</span>    <span class="k1">while</span> <span class="k2">(</span>p <span class="k3">&lt;</span> <span class="n">4</span><span class="k2">)</span>
<span class="number"> 165</span>    <span class="k2">{</span>
<span class="number"> 166</span>      <span class="k1">if</span> <span class="k2">(</span>projectiles<span class="k2">[</span>p<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>isFiring<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 167</span>      <span class="k2">{</span>
<span class="number"> 168</span>        projectiles<span class="k2">[</span>p<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>Firing<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 169</span>        <span class="k1">if</span> <span class="k2">(</span>man<span class="k2">[</span>p<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 170</span>        <span class="k2">{</span>
<span class="number"> 171</span>          projectiles<span class="k2">[</span>p<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>Stop<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 172</span>        <span class="k2">}</span>
<span class="number"> 173</span>      <span class="k2">}</span>
<span class="number"> 174</span>      p<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 175</span>      man<span class="k2">[</span>p<span class="k2">]</span><span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 176</span>    <span class="k2">}</span>
<span class="number"> 177</span>
<span class="number"> 178</span>    <span class="k2">}</span>
<span class="number"> 179</span>
<span class="number"> 180</span><span class="k1">void</span> Render<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 181</span>  <span class="k2">{</span>
<span class="number"> 182</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="c">// colour entire display with rgb colour</span>
<span class="number"> 183</span>
<span class="number"> 184</span>    Arena1-&gt;Render<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 185</span>    Hero1-&gt;Draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 186</span>    Monster1-&gt;Draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 187</span>    
<span class="number"> 188</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="c">// show what has just been drawn</span>
<span class="number"> 189</span>  <span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tremendoustoast)</author>
		<pubDate>Fri, 28 Feb 2014 01:10:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Don&#39;t call destructors directly. delete takes care of calling the destructor for you.</p><p>I don&#39;t have time to look over the rest of it now, but I will look again later.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 28 Feb 2014 01:36:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s great, thank you for the help so far! <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tremendoustoast)</author>
		<pubDate>Fri, 28 Feb 2014 03:55:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Things are bound to go wrong because you it looks like you are loading assets before allegro is initialized. You create Hero and Monster objects before calling <span class="source-code"><span class="k1">bool</span> init_ok <span class="k3">=</span> alleg-&gt;initialise_allegro<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span>.
</p><div class="source-code snippet"><div class="inner"><pre><span class="k2">{</span> 
 alleg <span class="k3">=</span> <span class="k1">new</span> AllegroStart<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
 Hero1 <span class="k3">=</span> <span class="k1">new</span> Hero<span class="k2">(</span><span class="n">5</span> , <span class="n">100</span> , <span class="n">200</span> , <span class="s">"assets/PlaceHolderDude.bmp"</span> , <span class="n">200</span> , <span class="n">2</span> , Arena1<span class="k2">)</span><span class="k2">;</span>
 Arena1 <span class="k3">=</span> <span class="k1">new</span> Arena<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
 Monster1 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
 Monster2 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
 Monster3 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
 Monster4 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

You need to insert your initialization code here :
</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"><div class="highlight"><span class="number">  1</span> alleg <span class="k3">=</span> <span class="k1">new</span> AllegroStart<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></div><span class="number">  2</span>
<span class="number">  3</span> <span class="c">// initialise everything</span>
<div class="highlight"><span class="number">  4</span> <span class="k1">bool</span> init_ok <span class="k3">=</span> alleg-&gt;initialise_allegro<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></div><span class="number">  5</span> <span class="k1">if</span> <span class="k2">(</span>init_ok <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  6</span>  <span class="k1">return</span> init_ok<span class="k2">;</span> <span class="c">// exit if init failed</span>
<span class="number">  7</span> <span class="k2">}</span>
<span class="number">  8</span>
<span class="number">  9</span> Hero1 <span class="k3">=</span> <span class="k1">new</span> Hero<span class="k2">(</span><span class="n">5</span> , <span class="n">100</span> , <span class="n">200</span> , <span class="s">"assets/PlaceHolderDude.bmp"</span> , <span class="n">200</span> , <span class="n">2</span> , Arena1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span> Arena1 <span class="k3">=</span> <span class="k1">new</span> Arena<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span> Monster1 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span> Monster2 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span> Monster3 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span> Monster4 <span class="k3">=</span> <span class="k1">new</span> Monster<span class="k2">(</span><span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/Monster.bmp"</span>, <span class="n">100</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 28 Feb 2014 04:22:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hey,<br />I&#39;ve made the change you suggested, it explains why i was having trouble with some other parts of the program previously, however, it hasn&#39;t fixed the problem with &#39;got_event&#39;.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tremendoustoast)</author>
		<pubDate>Fri, 28 Feb 2014 15:36:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I found very difficult to go through your codeflow, but would you like to explain what this:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">bool</span> AllegroStart::DoLogic<span class="k2">(</span><span class="k2">)</span>
  <span class="k2">{</span> 
  <span class="k1">if</span> <span class="k2">(</span>update_logic<span class="k2">)</span>
     <span class="k2">{</span> 
     <span class="k1">return</span> update_logic<span class="k2">;</span> 
     update_logic <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> 
     <span class="k2">}</span> 
  <span class="k2">}</span>
</pre></div></div><p>

should accomplish?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Fri, 28 Feb 2014 16:10:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok so basically, i have broken tasks in main into logic tasks and render task and placed them in separate functions.</p><p>That method will return true if logic tasks need to be performed and then the boolean attribute used to say whether logic tasks need to be performed will be set to false again.</p><p>The reason i am using these functions is to allow the program extra time to process tasks if it is needed, this way you won&#39;t get a back log of render/logic tasks creating a more steady frame rate
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tremendoustoast)</author>
		<pubDate>Fri, 28 Feb 2014 19:35:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think he&#39;s trying to hint at the fact that your logic in DoLogic is a bit flawed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Fri, 28 Feb 2014 19:42:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh <span class="cuss"><span><span class="cuss"><span>shit</span></span></span></span>... man if i had a nickel for every time i did something like this.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tremendoustoast)</author>
		<pubDate>Fri, 28 Feb 2014 19:49:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well the fact is thay is only an example of the flawed points in your code.</p><p>Which apart for some naive things like using a vector to store elements you...singularly allocated (I&#39;m looking at those monsters....) it&#39;s not THAT bas as you state in the OP...there&#39;s just a bit of WAY TOO MUCH BOILERPLATE, but that&#39;s fine.</p><p>The problem is I can&#39;t really follow along your code, how it &quot;flows&quot;.</p><p>You said that you get the SEGFAULT only the SECOND time you run over the &#39;got_event&#39; bit...is this still the case after Edgar&#39;s suggestion?</p><p>EDIT:</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/613965/997100#target">tremendoustoast</a> said:</div><div class="quote"><p> The reason i am using these functions is to allow the program extra time to process tasks if it is needed, this way you won&#39;t get a back log of render/logic tasks creating a more steady frame rate </p></div></div><p>Barring my difficulties in understanding the code (which are there!) I don&#39;t think this would be the case since ouy&#39;re counting frames but not checking how much time you spend in logic.</p><p>Anyway I would suggest you drop this kind of optimization for now, it&#39;s quite an advanced topic...unlikely you will need that now.</p><p>On the other hand, I&#39;ve (mentally) simulated two consecutive runs of the innner loop but can&#39;t find a good reason for <span class="source-code"><a href="http://www.allegro.cc/manual/al_get_next_event"><span class="a">al_get_next_event</span></a></span> throw a fit without reason....it is very very very likely that the second time that is called there is no event (maybe also the first), but in that case that is clearly guarded but the bool check right after.</p><p>I now strongly suspect there&#39;s an unmatched closing curly brace somewhere...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Fri, 28 Feb 2014 19:54:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, </p><p>-I have changed the code so that my initialise_allgro function is being called before any other class objects are created.</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="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>  alleg <span class="k3">=</span> <span class="k1">new</span> AllegroStart<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>  <span class="c">// initialise everything</span>
<span class="number">  7</span>  <span class="k1">bool</span> init_ok <span class="k3">=</span> alleg-&gt;initialise_allegro<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span>  <span class="k1">if</span> <span class="k2">(</span>init_ok <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 10</span>  <span class="k2">{</span>
<span class="number"> 11</span>    <span class="k1">return</span> init_ok<span class="k2">;</span> <span class="c">// exit if init failed</span>
<span class="number"> 12</span>  <span class="k2">}</span>
<span class="number"> 13</span>
<span class="number"> 14</span>  Hero1 <span class="k3">=</span> <span class="k1">new</span> Hero<span class="k2">(</span><span class="n">5</span>, <span class="n">100</span>, <span class="n">200</span>, <span class="s">"assets/PlaceHolderDude.bmp"</span>, <span class="n">200</span>, <span class="n">2</span>, Arena1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>  Arena1 <span class="k3">=</span> <span class="k1">new</span> Arena<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>

-I have changed the code so that update_logic and update_render are being set to false after the methods have been called(by creating 2 methods which just set the values to false when called)</p><p>Game loop in 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>  alleg-&gt;process_events<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// deal with events, such as mouse and keyboard input</span>
<span class="number">  2</span>
<span class="number">  3</span>    <span class="k1">if</span><span class="k2">(</span>alleg-&gt;DoLogic<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  4</span>    <span class="k2">{</span>
<span class="number">  5</span>      Logic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>      alleg-&gt;EndLogic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>    <span class="k2">}</span>
<span class="number">  8</span>    <span class="k1">if</span><span class="k2">(</span>alleg-&gt;DoRender<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  9</span>    <span class="k2">{</span>
<span class="number"> 10</span>      Render<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>      alleg-&gt;EndRender<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>    <span class="k2">}</span>
</div></div><p>

Methods in AllegroStart</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="k1">bool</span> AllegroStart::DoLogic<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  <span class="k1">if</span> <span class="k2">(</span>update_logic<span class="k2">)</span>
<span class="number">  4</span>  <span class="k2">{</span>
<span class="number">  5</span>    <span class="k1">return</span> update_logic<span class="k2">;</span>
<span class="number">  6</span>  
<span class="number">  7</span>  <span class="k2">}</span>
<span class="number">  8</span><span class="k2">}</span>
<span class="number">  9</span>
<span class="number"> 10</span><span class="k1">bool</span> AllegroStart::DoRender<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 11</span><span class="k2">{</span>
<span class="number"> 12</span>  <span class="k1">if</span><span class="k2">(</span>render_frame<span class="k2">)</span>
<span class="number"> 13</span>  <span class="k2">{</span>
<span class="number"> 14</span>  
<span class="number"> 15</span>  <span class="k1">return</span> render_frame<span class="k2">;</span>
<span class="number"> 16</span>  <span class="k2">}</span>
<span class="number"> 17</span><span class="k2">}</span>
<span class="number"> 18</span>
<span class="number"> 19</span><span class="k1">void</span> AllegroStart::EndLogic<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 20</span><span class="k2">{</span>
<span class="number"> 21</span>  update_logic <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 22</span><span class="k2">}</span>
<span class="number"> 23</span><span class="k1">void</span> AllegroStart::EndRender<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 24</span><span class="k2">{</span>
<span class="number"> 25</span>  render_frame <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 26</span><span class="k2">}</span>
</div></div><p>


After changing this the program still crashes when it reaches <span class="source-code"><span class="k1">bool</span> got_event <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_next_event"><span class="a">al_get_next_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>allegro_event<span class="k2">)</span></span><br />for the second time.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tremendoustoast)</author>
		<pubDate>Fri, 28 Feb 2014 20:11:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just in case, I was editing my previous post before you posted again.</p><p>You may want to check.</p><p>EDIT: well braces match it seems...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Fri, 28 Feb 2014 20:14:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ah, i&#39;m following a tutorial and my understanding of how that piece of code works is clearly not right.</p><p>Despite this I just can&#39;t see any reason why it would stop on that line of code...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tremendoustoast)</author>
		<pubDate>Fri, 28 Feb 2014 20:37:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You could share you Visual Studio Solution, maybe someone (even me if I get back to my VS machine) can follow along the code.</p><p>Maybe <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Fri, 28 Feb 2014 21:07:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m just guessing here, but would it make any difference if you started the timer <b>before</b> registering it for events?</p><p>Probably not but you never know...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Fri, 28 Feb 2014 21:48:53 +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/613965/997104#target">tremendoustoast</a> said:</div><div class="quote"><p>
</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="k1">bool</span> AllegroStart::DoLogic<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span> <span class="k2">{</span>
<span class="number">  3</span>  <span class="k1">if</span> <span class="k2">(</span>update_logic<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  4</span>   <span class="k1">return</span> update_logic<span class="k2">;</span>
<span class="number">  5</span>  <span class="k2">}</span>
<div class="highlight"><span class="number">  6</span> <span class="k2">}</span></div><span class="number">  7</span> <span class="k1">bool</span> AllegroStart::DoRender<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  8</span> <span class="k1">if</span><span class="k2">(</span>render_frame<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span> <span class="k1">return</span> render_frame<span class="k2">;</span>
<span class="number"> 10</span> <span class="k2">}</span>
<div class="highlight"><span class="number"> 11</span> <span class="k2">}</span></div><span class="number"> 12</span> <span class="k1">void</span> AllegroStart::EndLogic<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 13</span>  update_logic <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 14</span> <span class="k2">}</span>
<span class="number"> 15</span> <span class="k1">void</span> AllegroStart::EndRender<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 16</span>  render_frame <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 17</span> <span class="k2">}</span>
</div></div><p>
</p></div></div><p>

You should turn on your compiler warnings. On both of the highlighted lines if update_logic or render_frame is false then the program execution will fall through to whatever is after it in the binary code. The execution pointer could end up anywhere, and it is likely to crash indeterminately.</p><p>Your compiler should have said something like &#39;missing return statement for non-void function&#39;. I think gcc would have warned about it with -Wall. I don&#39;t have a C++ compiler handy to test though.</p><p>If that&#39;s still not it, post all of your current main again and maybe attach a zip of your sources.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 01 Mar 2014 00:03:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I strongly suspect that compiler optimizations would make the thing inlined and thus MAYBE leave things unchanged with no harm.</p><p>But I completely missed that due to cross-posting...whatever the crash, those two functions won&#39;t do any good cause there&#39;s nowhere the properties are being set again (to true).</p><p>I second Edgar&#39;s suggestion, maybewe are able to run the sources into a debugger...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Sat, 01 Mar 2014 03:14:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="remote-thumbnail"><span class="json">{"name":"GoodNewsEveryone.jpg","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/6\/c6698fa12292b680f739bfd436f0731e.jpg","w":990,"h":749,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/6\/c6698fa12292b680f739bfd436f0731e"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/c/6/c6698fa12292b680f739bfd436f0731e-240.jpg" alt="GoodNewsEveryone.jpg" width="240" height="181" /></span><br />GOOD NEWS EVERYONE!<br />I was fed up of just sitting around hoping it would work so i continued programming a different section of the game and something i did seems to have fixed the problem!! Now to fix the 7234 other problems!</p><p><b>EDIT</b><br />Forgot to say THANK YOU to everybody for your help in improving my code in other areas! Never really use forums anymore but you guys were really helpful and didn&#39;t destroy me for my poor coding.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tremendoustoast)</author>
		<pubDate>Tue, 04 Mar 2014 17:53:21 +0000</pubDate>
	</item>
</rss>
