<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Show and Remove Text with the same key</title>
		<link>http://www.allegro.cc/forums/view/615373</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 13 May 2015 01:43:24 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I cannot seem to fix it whereby spacebar allows the text to show on screen until spacebar is pressed again to remove it. Currently it shows then gets removed straight away due to SPACE being unpressed.</p><p>The only way I can seem to do it is by putting another event_queue in the ShowQuest function, but this seems to cause problems as sometimes I need to press spacebar multiple times for it to be removed.</p><p>I&#39;ll post my whole code here for ease, so you can see it all. (Sorry if it&#39;s terrible)</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="number">   3</span><span class="c">// Search for required *.lib libraries while linking</span>
<span class="number">   4</span><span class="p">#ifdef _DEBUG</span>
<span class="number">   5</span><span class="p">#pragma comment(lib, "allegro-5.0.9-monolith-md-debug.lib")</span>
<span class="number">   6</span><span class="p">#else</span>
<span class="number">   7</span><span class="p">#pragma comment(lib, "allegro-5.0.9-monolith-md.lib")</span>
<span class="number">   8</span><span class="p">#endif // _DEBUG</span>
<span class="number">   9</span>
<span class="number">  10</span><span class="p">#include &lt;allegro5\allegro.h&gt;</span>
<span class="number">  11</span><span class="p">#include &lt;allegro5\allegro_native_dialog.h&gt;</span>
<span class="number">  12</span><span class="p">#include &lt;allegro5\allegro_primitives.h&gt;</span>
<span class="number">  13</span><span class="p">#include &lt;allegro5\allegro_font.h&gt;</span>
<span class="number">  14</span><span class="p">#include &lt;allegro5\allegro_ttf.h&gt;</span>
<span class="number">  15</span><span class="p">#include &lt;allegro5\allegro_image.h&gt;</span>
<span class="number">  16</span><span class="p">#include "objects.h"</span>
<span class="number">  17</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  18</span>
<span class="number">  19</span>
<span class="number">  20</span><span class="c">//GLOBALS</span>
<span class="number">  21</span><span class="k1">const</span> <span class="k1">int</span> WIDTH <span class="k3">=</span> <span class="n">1280</span><span class="k2">;</span>
<span class="number">  22</span><span class="k1">const</span> <span class="k1">int</span> HEIGHT <span class="k3">=</span> <span class="n">720</span><span class="k2">;</span>
<span class="number">  23</span>
<span class="number">  24</span><span class="k1">enum</span> STATE<span class="k2">{</span><a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a>, PLAYING, COMBATSCREEN, COMBAT, GAMEOVER<span class="k2">}</span><span class="k2">;</span>
<span class="number">  25</span><span class="k1">enum</span> KEYS<span class="k2">{</span>UP, DOWN, LEFT, RIGHT, ESCAPE, W, A, S, D, SPACE<span class="k2">}</span><span class="k2">;</span>
<span class="number">  26</span><span class="k1">bool</span> keys<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span> <span class="k2">}</span><span class="k2">;</span>
<span class="number">  27</span><span class="k1">bool</span> dialog_open <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  28</span>
<span class="number">  29</span>Player Human<span class="k2">;</span>
<span class="number">  30</span>Enemy Orc<span class="k2">;</span>
<span class="number">  31</span>QuestGiver NPCQuestOne<span class="k2">;</span>
<span class="number">  32</span>Quests Qs<span class="k2">;</span>
<span class="number">  33</span>
<span class="number">  34</span><span class="c">//Prototypes</span>
<span class="number">  35</span><span class="k1">void</span> ChangeState<span class="k2">(</span><span class="k1">int</span> <span class="k3">&amp;</span>state, <span class="k1">int</span> newState<span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>
<span class="number">  37</span><span class="k1">void</span> InitHuman<span class="k2">(</span>Player <span class="k3">&amp;</span>Human, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span><span class="k1">void</span> DrawHuman<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span><span class="k1">void</span> MoveHumanUp<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span><span class="k1">void</span> MoveHumanDown<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number">  41</span><span class="k1">void</span> MoveHumanLeft<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span><span class="k1">void</span> MoveHumanRight<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span><span class="k1">void</span> HumanAttack<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</span><span class="k1">void</span> InitNPCQuestOne<span class="k2">(</span>QuestGiver <span class="k3">&amp;</span>NPCQuestOne, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span><span class="k1">void</span> DrawNPCQuestOne<span class="k2">(</span>QuestGiver <span class="k3">&amp;</span>NPCQuestOne<span class="k2">)</span><span class="k2">;</span>
<span class="number">  47</span>
<span class="number">  48</span><span class="k1">void</span> InitQuests<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span><span class="k1">void</span> DrawQuestItems<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs<span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</span><span class="k1">void</span> QuestDialog<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs<span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</span><span class="k1">void</span> CompleteQuests<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs<span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span><span class="k1">void</span> ShowQuest<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs, <span class="k1">int</span> quest_num, <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font18, <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue, <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>
<span class="number">  54</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  55</span><span class="k2">{</span>
<span class="number">  56</span>
<span class="number">  57</span>  <span class="c">//VARIABLES</span>
<span class="number">  58</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  59</span>  <span class="k1">bool</span> render <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  60</span>  <span class="k1">const</span> <span class="k1">int</span> FPS <span class="k3">=</span> <span class="n">60</span><span class="k2">;</span>
<span class="number">  61</span>  <span class="k1">int</span> pos_x<span class="k2">;</span>
<span class="number">  62</span>  <span class="k1">int</span> pos_y<span class="k2">;</span>
<span class="number">  63</span>  <span class="k1">int</span> level<span class="k2">;</span>
<span class="number">  64</span>  <span class="k1">int</span> frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  65</span>  <span class="k1">int</span> gameFPS <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  66</span>  <span class="k1">int</span> quest_num <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  67</span>
<span class="number">  68</span>  <span class="c">//Menu Options Bounds</span>
<span class="number">  69</span>  <span class="k1">int</span> Menu_x1 <span class="k3">=</span> <span class="n">550</span><span class="k2">;</span>
<span class="number">  70</span>  <span class="k1">int</span> Menu_x2 <span class="k3">=</span> <span class="n">735</span><span class="k2">;</span>
<span class="number">  71</span>  <span class="k1">int</span> NewGame_y1 <span class="k3">=</span> <span class="n">410</span><span class="k2">;</span>
<span class="number">  72</span>  <span class="k1">int</span> NewGame_y2 <span class="k3">=</span> <span class="n">460</span><span class="k2">;</span>
<span class="number">  73</span>  <span class="k1">int</span> Exit_y1 <span class="k3">=</span> <span class="n">530</span><span class="k2">;</span>
<span class="number">  74</span>  <span class="k1">int</span> Exit_y2 <span class="k3">=</span> <span class="n">580</span><span class="k2">;</span>
<span class="number">  75</span>
<span class="number">  76</span>  <span class="c">//PROJECT VARIABLES</span>
<span class="number">  77</span>  <span class="k1">int</span> state <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  78</span>
<span class="number">  79</span>  <span class="c">//ALLEGRO VARIABLES</span>
<span class="number">  80</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">  81</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">  82</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">  83</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font18 <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  84</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font36 <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  85</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>MainMenu<span class="k2">;</span>
<span class="number">  86</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>Level1<span class="k2">;</span>
<span class="number">  87</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>HumanImage<span class="k2">;</span>
<span class="number">  88</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>NPC1<span class="k2">;</span>
<span class="number">  89</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>Quest1Item<span class="k2">;</span>
<span class="number">  90</span>
<span class="number">  91</span>  <span class="c">//ALLEGRO INIT FUNCTIONS</span>
<span class="number">  92</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="c">//Initialize Allegro</span>
<span class="number">  93</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  94</span>
<span class="number">  95</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>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>    <span class="c">//Create display object</span>
<span class="number">  96</span>
<span class="number">  97</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>                  <span class="c">//Test display object</span>
<span class="number">  98</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  99</span>
<span class="number"> 100</span>  <span class="c">//ADDON INSTALL</span>
<span class="number"> 101</span>  <a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</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"> 103</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="number"> 104</span>  <a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 105</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"> 106</span>  <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 107</span>
<span class="number"> 108</span>  <span class="c">//PROJECT INIT</span>
<span class="number"> 109</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"> 110</span>  timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>
<span class="number"> 112</span>  font18 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"arial.ttf"</span>, <span class="n">18</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</span>  font36 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"colonna.ttf"</span>, <span class="n">36</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 114</span>
<span class="number"> 115</span>  <span class="c">//LOAD IMAGES AND SPRITESHEETS</span>
<span class="number"> 116</span>  <span class="c">//Deleted due to post size (Works fine)</span>
<span class="number"> 117</span>
<span class="number"> 118</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</span>  <span class="c">//INIT CHARACTERS</span>
<span class="number"> 120</span>  ChangeState<span class="k2">(</span>state, <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>
<span class="number"> 122</span>  InitHuman<span class="k2">(</span>Human, HumanImage<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>  InitNPCQuestOne<span class="k2">(</span>NPCQuestOne, NPC1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 124</span>  InitQuests<span class="k2">(</span>Qs, Quest1Item<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>
<span class="number"> 126</span>  <span class="c">//TIMER INIT AND STARTUP</span>
<span class="number"> 127</span>  
<span class="number"> 128</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"> 129</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_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"> 130</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"> 131</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"> 132</span>
<span class="number"> 133</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 135</span>  <span class="k2">{</span>
<span class="number"> 136</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number"> 137</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>
<span class="number"> 139</span>    <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 140</span>    <span class="k2">{</span>
<span class="number"> 141</span>      render <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 142</span>
<span class="number"> 143</span>      <span class="c">//UPDATE===========================================</span>
<span class="number"> 144</span>      <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> keys<span class="k2">[</span>W<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 145</span>        MoveHumanUp<span class="k2">(</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 146</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> keys<span class="k2">[</span>S<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 147</span>        MoveHumanDown<span class="k2">(</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 148</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> keys<span class="k2">[</span>A<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 149</span>        MoveHumanLeft<span class="k2">(</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 150</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> keys<span class="k2">[</span>D<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 151</span>        MoveHumanRight<span class="k2">(</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 152</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 153</span>      <span class="c">//=====================================================</span>
<span class="number"> 154</span>      <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span>
<span class="number"> 155</span>      <span class="k2">{</span>
<span class="number"> 156</span>
<span class="number"> 157</span>      <span class="k2">}</span>
<span class="number"> 158</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
<span class="number"> 159</span>      <span class="k2">{</span>
<span class="number"> 160</span>        <span class="c">//CompleteQuests(Qs);</span>
<span class="number"> 161</span>      <span class="k2">}</span>
<span class="number"> 162</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> GAMEOVER<span class="k2">)</span>
<span class="number"> 163</span>      <span class="k2">{</span>
<span class="number"> 164</span>
<span class="number"> 165</span>      <span class="k2">}</span>
<span class="number"> 166</span>    <span class="k2">}</span>
<span class="number"> 167</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 168</span>    <span class="k2">{</span>
<span class="number"> 169</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 170</span>    <span class="k2">}</span>
<span class="number"> 171</span>
<span class="number"> 172</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 173</span>    <span class="k2">{</span>
<span class="number"> 174</span>      <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 175</span>      <span class="k2">{</span>
<span class="number"> 176</span>      <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 177</span>        keys<span class="k2">[</span>ESCAPE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 178</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 179</span>      <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number"> 180</span>        keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 181</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 182</span>      <span class="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 183</span>        keys<span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 184</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 185</span>      <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 186</span>        keys<span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 187</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 188</span>      <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 189</span>        keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 190</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 191</span>      <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 192</span>        keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 193</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 194</span>      <span class="k1">case</span> ALLEGRO_KEY_W:
<span class="number"> 195</span>        keys<span class="k2">[</span>W<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 196</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 197</span>      <span class="k1">case</span> ALLEGRO_KEY_S:
<span class="number"> 198</span>        keys<span class="k2">[</span>S<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 199</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 200</span>      <span class="k1">case</span> ALLEGRO_KEY_A:
<span class="number"> 201</span>        keys<span class="k2">[</span>A<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 202</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 203</span>      <span class="k1">case</span> ALLEGRO_KEY_D:
<span class="number"> 204</span>        keys<span class="k2">[</span>D<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 205</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 206</span>      <span class="k2">}</span>
<span class="number"> 207</span>    <span class="k2">}</span>
<span class="number"> 208</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 209</span>    <span class="k2">{</span>
<span class="number"> 210</span>      <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 211</span>      <span class="k2">{</span>
<span class="number"> 212</span>      <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 213</span>        done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 214</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 215</span>      <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number"> 216</span>        keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 217</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 218</span>      <span class="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 219</span>        keys<span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 220</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 221</span>      <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 222</span>        keys<span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 223</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 224</span>      <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 225</span>        keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 226</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 227</span>      <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 228</span>        keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 229</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 230</span>      <span class="k1">case</span> ALLEGRO_KEY_W:
<span class="number"> 231</span>        keys<span class="k2">[</span>W<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 232</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 233</span>      <span class="k1">case</span> ALLEGRO_KEY_S:
<span class="number"> 234</span>        keys<span class="k2">[</span>S<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 235</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 236</span>      <span class="k1">case</span> ALLEGRO_KEY_A:
<span class="number"> 237</span>        keys<span class="k2">[</span>A<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 238</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 239</span>      <span class="k1">case</span> ALLEGRO_KEY_D:
<span class="number"> 240</span>        keys<span class="k2">[</span>D<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 241</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 242</span>      <span class="k2">}</span>
<span class="number"> 243</span>    <span class="k2">}</span>
<span class="number"> 244</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number"> 245</span>    <span class="k2">{</span>
<span class="number"> 246</span>      pos_x <span class="k3">=</span> ev.mouse.x<span class="k2">;</span>
<span class="number"> 247</span>      pos_y <span class="k3">=</span> ev.mouse.y<span class="k2">;</span>
<span class="number"> 248</span>    <span class="k2">}</span>
<span class="number"> 249</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>
<span class="number"> 250</span>    <span class="k2">{</span>
<span class="number"> 251</span>      <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span>
<span class="number"> 252</span>      <span class="k2">{</span>
<span class="number"> 253</span>        <span class="c">//Check for mouse location and pressed button to start game.</span>
<span class="number"> 254</span>        <span class="k1">if</span> <span class="k2">(</span>ev.mouse.button <span class="k3">&amp;</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.x <span class="k3">&gt;</span><span class="k3">=</span> Menu_x1 <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.x <span class="k3">&lt;</span><span class="k3">=</span> Menu_x2 <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.y <span class="k3">&gt;</span><span class="k3">=</span> NewGame_y1 <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.y <span class="k3">&lt;</span><span class="k3">=</span> NewGame_y2<span class="k2">)</span>
<span class="number"> 255</span>        <span class="k2">{</span>
<span class="number"> 256</span>          level <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 257</span>          state <span class="k3">=</span> PLAYING<span class="k2">;</span>
<span class="number"> 258</span>        <span class="k2">}</span>
<span class="number"> 259</span>        <span class="c">//Check for mouse location and pressed button to exit.</span>
<span class="number"> 260</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.mouse.button <span class="k3">&amp;</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.x <span class="k3">&gt;</span><span class="k3">=</span> Menu_x1 <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.x <span class="k3">&lt;</span><span class="k3">=</span> Menu_x2 <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.y <span class="k3">&gt;</span><span class="k3">=</span> Exit_y1 <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.y <span class="k3">&lt;</span><span class="k3">=</span> Exit_y2<span class="k2">)</span>
<span class="number"> 261</span>        <span class="k2">{</span>
<span class="number"> 262</span>          done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 263</span>        <span class="k2">}</span>
<span class="number"> 264</span>      <span class="k2">}</span>
<span class="number"> 265</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
<span class="number"> 266</span>      <span class="k2">{</span>
<span class="number"> 267</span>      <span class="k2">}</span>
<span class="number"> 268</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> GAMEOVER<span class="k2">)</span>
<span class="number"> 269</span>      <span class="k2">{</span>
<span class="number"> 270</span>
<span class="number"> 271</span>      <span class="k2">}</span>
<span class="number"> 272</span>
<span class="number"> 273</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.mouse.button <span class="k3">&amp;</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 274</span>      <span class="k2">{</span>
<span class="number"> 275</span>
<span class="number"> 276</span>      <span class="k2">}</span>
<span class="number"> 277</span>    <span class="k2">}</span>
<span class="number"> 278</span>
<span class="number"> 279</span>    <span class="c">//==========================================================</span>
<span class="number"> 280</span>    <span class="c">//RENDER</span>
<span class="number"> 281</span>    <span class="c">//==========================================================</span>
<span class="number"> 282</span>    <span class="k1">if</span> <span class="k2">(</span>render <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 283</span>    <span class="k2">{</span>
<span class="number"> 284</span>      render <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 285</span>
<span class="number"> 286</span>      <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span>
<span class="number"> 287</span>      <span class="k2">{</span>
<span class="number"> 288</span>        <span class="c">//Draw Main Menu</span>
<span class="number"> 289</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>MainMenu, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 290</span>        <span class="c">//Deleted due to post size (Works fine)</span>
<span class="number"> 291</span>
<span class="number"> 292</span>      <span class="k2">}</span>
<span class="number"> 293</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
<span class="number"> 294</span>      <span class="k2">{</span>
<span class="number"> 295</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>Level1, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 296</span>        DrawNPCQuestOne<span class="k2">(</span>NPCQuestOne<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 297</span>        DrawQuestItems<span class="k2">(</span>Qs<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 298</span>        DrawHuman<span class="k2">(</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 299</span>        <span class="c">//Check to see if player is at the NPC location and if SPACE is pressed show quest</span>
<span class="number"> 300</span>        <span class="k1">if</span> <span class="k2">(</span>Human.x <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.x <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">+</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">+</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 301</span>        <span class="k2">{</span>
<span class="number"> 302</span>          dialog_open <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 303</span>          QuestDialog<span class="k2">(</span>Qs<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 304</span>          ShowQuest<span class="k2">(</span>Qs, quest_num, font18, event_queue, ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 305</span>        <span class="k2">}</span>
<span class="number"> 306</span>      <span class="k2">}</span>
<span class="number"> 307</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> GAMEOVER<span class="k2">)</span>
<span class="number"> 308</span>      <span class="k2">{</span>
<span class="number"> 309</span>        <span class="c">//Not needed yet</span>
<span class="number"> 310</span>        <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font18, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, WIDTH <span class="k3">/</span> <span class="n">2</span>, HEIGHT <span class="k3">/</span> <span class="n">2</span>, ALLEGRO_ALIGN_CENTRE, <span class="s">"Press Space to Exit"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 311</span>      <span class="k2">}</span>
<span class="number"> 312</span>
<span class="number"> 313</span>      <span class="c">//FLIP BUFFERS =========================================</span>
<span class="number"> 314</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"> 315</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"> 316</span>    <span class="k2">}</span>
<span class="number"> 317</span>  <span class="k2">}</span>
<span class="number"> 318</span>
<span class="number"> 319</span>  <span class="c">//==========================================================</span>
<span class="number"> 320</span>  <span class="c">//DESTROY PROJECT OBJECTS</span>
<span class="number"> 321</span>  <span class="c">//==========================================================</span>
<span class="number"> 322</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>MainMenu<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 323</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>Level1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 324</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>HumanImage<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 325</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>NPC1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 326</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>Quest1Item<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 327</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"> 328</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"> 329</span>  <a href="http://www.allegro.cc/manual/al_destroy_font"><span class="a">al_destroy_font</span></a><span class="k2">(</span>font18<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 330</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"> 331</span>
<span class="number"> 332</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 333</span><span class="k2">}</span>
<span class="number"> 334</span>
<span class="number"> 335</span><span class="k1">void</span> InitNPCQuestOne<span class="k2">(</span>QuestGiver <span class="k3">&amp;</span>NPCQuestOne, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image <span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 336</span><span class="k2">{</span>
<span class="number"> 337</span>  <span class="c">//Deleted due to post size (Works fine)</span>
<span class="number"> 338</span><span class="k2">}</span>
<span class="number"> 339</span><span class="k1">void</span> DrawNPCQuestOne<span class="k2">(</span>QuestGiver <span class="k3">&amp;</span>NPCQuestOne<span class="k2">)</span>
<span class="number"> 340</span><span class="k2">{</span>
<span class="number"> 341</span>  <span class="c">//Deleted due to post size (Works fine)</span>
<span class="number"> 342</span><span class="k2">}</span>
<span class="number"> 343</span>
<span class="number"> 344</span><span class="k1">void</span> InitHuman<span class="k2">(</span>Player <span class="k3">&amp;</span>Human, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image <span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 345</span><span class="k2">{</span>
<span class="number"> 346</span>  <span class="c">//Deleted due to post size (Works fine)</span>
<span class="number"> 347</span><span class="k2">}</span>
<span class="number"> 348</span><span class="k1">void</span> DrawHuman<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span>
<span class="number"> 349</span><span class="k2">{</span>
<span class="number"> 350</span>  <span class="c">//Deleted due to post size (Works fine)</span>
<span class="number"> 351</span><span class="k2">}</span>
<span class="number"> 352</span><span class="k1">void</span> MoveHumanUp<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span>
<span class="number"> 353</span><span class="k2">{</span>
<span class="number"> 354</span>  <span class="c">//Deleted due to post size (Works fine)</span>
<span class="number"> 355</span><span class="k2">}</span>
<span class="number"> 356</span><span class="k1">void</span> MoveHumanDown<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span>
<span class="number"> 357</span><span class="k2">{</span>
<span class="number"> 358</span>  <span class="c">//Deleted due to post size (Works fine)</span>
<span class="number"> 359</span><span class="k2">}</span>
<span class="number"> 360</span><span class="k1">void</span> MoveHumanLeft<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span>
<span class="number"> 361</span><span class="k2">{</span>
<span class="number"> 362</span>  <span class="c">//Deleted due to post size (Works fine)</span>
<span class="number"> 363</span><span class="k2">}</span>
<span class="number"> 364</span><span class="k1">void</span> MoveHumanRight<span class="k2">(</span>Player <span class="k3">&amp;</span>Human<span class="k2">)</span>
<span class="number"> 365</span><span class="k2">{</span>
<span class="number"> 366</span>  <span class="c">//Deleted due to post size (Works fine)</span>
<span class="number"> 367</span><span class="k2">}</span>
<span class="number"> 368</span>
<span class="number"> 369</span><span class="k1">void</span> ChangeState<span class="k2">(</span><span class="k1">int</span> <span class="k3">&amp;</span>state, <span class="k1">int</span> newState<span class="k2">)</span>
<span class="number"> 370</span>  <span class="c">//ALLEGRO_EVENT_QUEUE *event_queue, ALLEGRO_EVENT &amp;ev</span>
<span class="number"> 371</span><span class="k2">{</span>
<span class="number"> 372</span>  <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span>
<span class="number"> 373</span>  <span class="k2">{</span>
<span class="number"> 374</span>  <span class="k2">}</span>
<span class="number"> 375</span>  <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
<span class="number"> 376</span>  <span class="k2">{</span>
<span class="number"> 377</span>  <span class="k2">}</span>
<span class="number"> 378</span>  <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> GAMEOVER<span class="k2">)</span>
<span class="number"> 379</span>  <span class="k2">{</span>
<span class="number"> 380</span>  <span class="k2">}</span>
<span class="number"> 381</span>
<span class="number"> 382</span>  state <span class="k3">=</span> newState<span class="k2">;</span>
<span class="number"> 383</span>
<span class="number"> 384</span>  <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span>
<span class="number"> 385</span>  <span class="k2">{</span>
<span class="number"> 386</span>  <span class="k2">}</span>
<span class="number"> 387</span>  <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
<span class="number"> 388</span>  <span class="k2">{</span>
<span class="number"> 389</span>    InitHuman<span class="k2">(</span>Human<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 390</span>  <span class="k2">}</span>
<span class="number"> 391</span>  <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> GAMEOVER<span class="k2">)</span>
<span class="number"> 392</span>  <span class="k2">{</span>
<span class="number"> 393</span>  <span class="k2">}</span>
<span class="number"> 394</span><span class="k2">}</span>
<span class="number"> 395</span>
<span class="number"> 396</span><span class="k1">void</span> InitQuests<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image <span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 397</span><span class="k2">{</span>
<span class="number"> 398</span>  Qs.IsOnQuest <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 399</span>  Qs.QuestCompleted <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 400</span>  Qs.quest_num <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 401</span>
<span class="number"> 402</span>
<span class="number"> 403</span>  <span class="k1">if</span> <span class="k2">(</span>image <span class="k3">!</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 404</span>    Qs.image <span class="k3">=</span> image<span class="k2">;</span>
<span class="number"> 405</span><span class="k2">}</span>
<span class="number"> 406</span><span class="k1">void</span> DrawQuestItems<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs<span class="k2">)</span>
<span class="number"> 407</span><span class="k2">{</span>
<span class="number"> 408</span>  Qs.Q1x <span class="k3">=</span> <span class="n">520</span><span class="k2">;</span>
<span class="number"> 409</span>  Qs.Q1y <span class="k3">=</span> <span class="n">210</span><span class="k2">;</span>
<span class="number"> 410</span>  <span class="k1">int</span> Q1frameWidth <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span>
<span class="number"> 411</span>  <span class="k1">int</span> Q1frameHeight <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span>
<span class="number"> 412</span>
<span class="number"> 413</span>  <span class="c">//If player is on quest but has not collected the quest item</span>
<span class="number"> 414</span>  <span class="k1">if</span> <span class="k2">(</span>Qs.HasQuestItem <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 415</span>  <span class="k2">{</span>
<span class="number"> 416</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>Qs.image, Qs.Q1x <span class="k3">-</span> Q1frameWidth <span class="k3">/</span> <span class="n">2</span>, Qs.Q1y <span class="k3">-</span> Q1frameHeight <span class="k3">/</span> <span class="n">2</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 417</span>    <span class="c">//if player has moved to the quest item, pick it up</span>
<span class="number"> 418</span>    <span class="k1">if</span> <span class="k2">(</span>Human.x <span class="k3">&gt;</span> Qs.Q1x <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.x <span class="k3">&lt;</span> Qs.Q1x <span class="k3">+</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&gt;</span> Qs.Q1y <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&lt;</span> Qs.Q1y <span class="k3">+</span> <span class="n">40</span><span class="k2">)</span>
<span class="number"> 419</span>    <span class="k2">{</span>
<span class="number"> 420</span>      Qs.HasQuestItem <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 421</span>    <span class="k2">}</span>
<span class="number"> 422</span>  <span class="k2">}</span>
<span class="number"> 423</span><span class="k2">}</span>
<span class="number"> 424</span>
<span class="number"> 425</span><span class="k1">void</span> QuestDialog<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs<span class="k2">)</span>
<span class="number"> 426</span><span class="k2">{</span>
<span class="number"> 427</span>  <span class="c">//Draw box for the quest text to go in</span>
<span class="number"> 428</span>  <a href="http://www.allegro.cc/manual/al_draw_rounded_rectangle"><span class="a">al_draw_rounded_rectangle</span></a><span class="k2">(</span>WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">-</span> <span class="n">220</span>, <span class="n">550</span>, WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> <span class="n">220</span>, <span class="n">660</span>, <span class="n">2</span>, <span class="n">2</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="n">6</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 429</span>  <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">-</span> <span class="n">220</span>, <span class="n">550</span>, WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> <span class="n">220</span>, <span class="n">660</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">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 430</span>
<span class="number"> 431</span><span class="k2">}</span>
<span class="number"> 432</span><span class="k1">void</span> ShowQuest<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs, <span class="k1">int</span> quest_num, <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font18, <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue, <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> <span class="k3">&amp;</span>ev<span class="k2">)</span>
<span class="number"> 433</span><span class="k2">{</span>
<span class="number"> 434</span>  <span class="c">//THIS WORKS</span>
<span class="number"> 435</span>
<span class="number"> 436</span>  <span class="c">//If player is not on a quest and the quest is number 1 then display quest text.</span>
<span class="number"> 437</span>  <span class="k1">if</span> <span class="k2">(</span>quest_num <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Qs.IsOnQuest <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 438</span>  <span class="k2">{</span>
<span class="number"> 439</span>    <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font18, <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>, WIDTH <span class="k3">/</span> <span class="n">2</span>, <span class="n">560</span>, ALLEGRO_ALIGN_CENTRE, <span class="s">"TEXT HERE."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 440</span>    
<span class="number"> 441</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 442</span>    <span class="k2">{</span>
<span class="number"> 443</span>      <span class="c">//***********************************************************</span>
<span class="number"> 444</span>      <span class="c">//THIS IS WHERE I AM NOW HAVING PROBLEMS</span>
<span class="number"> 445</span>      <span class="c">//</span>
<span class="number"> 446</span>
<span class="number"> 447</span>      <span class="c">//When player presses space close quest text</span>
<span class="number"> 448</span>      <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 449</span>        dialog_open <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 450</span>    <span class="k2">}</span>
<span class="number"> 451</span>
<span class="number"> 452</span>  <span class="k2">}</span>
<span class="number"> 453</span>  <span class="k1">if</span> <span class="k2">(</span>quest_num <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Qs.HasQuestItem <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 454</span>  <span class="k2">{</span>
<span class="number"> 455</span>    <span class="c">//THIS WORKS</span>
<span class="number"> 456</span>
<span class="number"> 457</span>    <span class="c">//If Player is on quest 1 and collected the quest item show new text</span>
<span class="number"> 458</span>    <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font18, <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>, WIDTH <span class="k3">/</span> <span class="n">2</span>, <span class="n">560</span>, ALLEGRO_ALIGN_CENTRE, <span class="s">"TEXT HERE."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 459</span>    quest_num<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 460</span>  <span class="k2">}</span>
<span class="number"> 461</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lasaqus7)</author>
		<pubDate>Mon, 11 May 2015 20:24:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Instead of using the spacebar &#39;directly&#39;, setup a bool called &quot;TextActive&quot;.</p><p>Then do something like:</p><p>If press spacebar, and TextActive = true, make TextActive = false,<br />or if press spacebar, and TextActive = false, make TextActive = true</p><p>Then only draw text when &#39;TextActive&#39; = true!</p><p><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Mon, 11 May 2015 20:57:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks for the reply Dizzy</p><p>I thought&#39;s that&#39;s what I had done with the dialog_open part within the code</p><p>If the player is at the npc and space is pressed then dialog_open = true and then in the ShowQuest() i have if space pressed again then dialog_open = false or am I doing it the wrong way. </p><p>I tried a few ways with this and edited the following section of code:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">if</span> <span class="k2">(</span>Human.x <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.x <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">+</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">+</span> <span class="n">40</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>keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number">  4</span>          <span class="k2">{</span>
<span class="number">  5</span>            dialog_open <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  6</span>            <span class="k1">if</span> <span class="k2">(</span>dialog_open <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number">  7</span>            <span class="k2">{</span>
<span class="number">  8</span>              QuestDialog<span class="k2">(</span>Qs<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>              <span class="c">//ShowQuest(Qs, quest_num, font18, event_queue, ev);</span>
<span class="number"> 10</span>            <span class="k2">}</span>
<span class="number"> 11</span>          <span class="k2">}</span>
<span class="number"> 12</span>        <span class="k2">}</span>
</div></div><p>
This way performs the same way, text show then removed instantly, if I hold space then it stays on screen.</p><p>And this way
</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">if</span> <span class="k2">(</span>Human.x <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.x <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">+</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">+</span> <span class="n">40</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>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> dialog_open <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number">  4</span>          <span class="k2">{</span>
<span class="number">  5</span>            QuestDialog<span class="k2">(</span>Qs<span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>            <span class="c">//ShowQuest(Qs, quest_num, font18, event_queue, ev);</span>
<span class="number">  7</span>            dialog_open <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  8</span>          <span class="k2">}</span>
<span class="number">  9</span>        <span class="k2">}</span>
</div></div><p>
This performs the same however it will not allow me to press space again to show anything (which in my newbie eyes kinda shows the dialog_open is working, since dialog_open is now true and hence should not display anything).</p><p>Edit = I did comment out the ShowQuest() as QuestDialog() is only shown at the same time and is less to edit. (thats only drawing a rectangle on screen).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lasaqus7)</author>
		<pubDate>Mon, 11 May 2015 21:16:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try:
</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> space_is_pressed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="c">//initial value outside of loop</span>
<span class="number">  2</span>
<span class="number">  3</span><span class="k1">while</span><span class="k2">(</span>looping<span class="k2">)</span>
<span class="number">  4</span><span class="k2">{</span>
<span class="number">  5</span><span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> space_is_pressed <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number">  6</span>          <span class="k2">{</span>
<span class="number">  7</span>            QuestDialog<span class="k2">(</span>Qs<span class="k2">)</span><span class="k2">;</span>       
<span class="number">  8</span>            space_is_pressed  <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  9</span>          <span class="k2">}</span> <span class="c">//can only fire once until the second condition below (releasing space) is satisfied.</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 12</span> <span class="k2">{</span>
<span class="number"> 13</span> space_is_pressed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="c">//release</span>
<span class="number"> 14</span> <span class="k2">}</span>
<span class="number"> 15</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Mon, 11 May 2015 23:30:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks for the reply Chris.</p><p>I did try following your code however, I only have 1 while loop which is the while(!done) game loop. <br />If i enter the code you put (Outside the bracers after my clear_to_color, so it&#39;s not in any other code), nothing happens when I press space at the NPC.</p><p>I have tried to add the code Under my DrawHuman(In the Render section and state playing section of my code) the text appears and disappears instantly, if I put a while loop here the game freezes when I get to the NPC (The while loop was the Human.x &gt;= NPCQuestOne.x - 40)</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="c">//I need the if statement to make sure the player is at the right location</span>
<span class="number">  2</span><span class="k1">if</span> <span class="k2">(</span>Human.x <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.x <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">+</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">+</span> <span class="n">40</span><span class="k2">)</span> <span class="c">//Copy of your code follows</span>
<span class="number">  3</span>    <span class="k2">{</span>
<span class="number">  4</span>      <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> dialog_open <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number">  5</span>      <span class="k2">{</span>
<span class="number">  6</span>        QuestDialog<span class="k2">(</span>Qs<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>        dialog_open <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  8</span>      <span class="k2">}</span>
<span class="number">  9</span>      <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 10</span>      <span class="k2">{</span>
<span class="number"> 11</span>        dialog_open <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 12</span>      <span class="k2">}</span>
<span class="number"> 13</span>    <span class="k2">}</span>
</div></div><p>

My dialog_open (your&#39;s is space_is_pressed) is a global variable so that is outside the loop.</p><p>Is this caused by my ALLEGRO_EVENT_KEY_DOWN and _UP&#39;s for SPACE as I&#39;m sure I need them?</p><p>Am I just placing the code in the wrong section ?.</p><p>The worst part is I understand the code you put and what is doing I just can&#39;t seem to implement it correctly and get it working :-(
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lasaqus7)</author>
		<pubDate>Tue, 12 May 2015 04:39:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Someone else chime in regarding using Allegro events and whatnot, but this is straight from a working piece of A5 game code for a Joust game I&#39;m toying with:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>kbd_state<span class="k2">)</span><span class="k2">;</span> 

<span class="c">//...</span>

<span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>kbd_state, ALLEGRO_KEY_UP<span class="k2">)</span><span class="k2">)</span>
  <span class="k2">{</span>
  <span class="k1">if</span><span class="k2">(</span>KEY_UP_PRESSED <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
    <span class="k2">{</span>
    temp_man-&gt;move_vel<span class="k2">(</span><span class="n">0</span>, <span class="k3">-</span>FLAP_VELOCITY<span class="k2">)</span><span class="k2">;</span> 
    <span class="k2">}</span>
  KEY_UP_PRESSED <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
  <span class="k2">}</span><span class="k1">else</span><span class="k2">{</span>
  KEY_UP_PRESSED <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>  
  <span class="k2">}</span>
</pre></div></div><p>

I think I had a problem very similar to yours before with Allegro 5, where the logic looked fine, but testing for the keys being false didn&#39;t work.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Tue, 12 May 2015 05:34:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks again Chris.</p><p>After looking into the events you posted (I haven&#39;t used them before or seem them in the tutorials)</p><p>I think <span class="source-code"><a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>kbd_state<span class="k2">)</span><span class="k2">;</span></span> Goes into my <span class="source-code"><span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span></span> game loop.</p><p><span class="source-code"><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a></span> requires a bool which I set as global:-<br /><span class="source-code"><span class="k1">bool</span> <a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k1">const</span> <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> kstate, <span class="k1">int</span> ALLEGRO_KEY_SPACE<span class="k2">)</span><span class="k2">;</span></span></p><p>I added <span class="source-code"><a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> kstate<span class="k2">;</span></span> to my list of allegro variables (As seen in first post code)</p><p>And then I added this code to my (state = PLAYING)
</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">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>kstate, ALLEGRO_KEY_SPACE<span class="k2">)</span><span class="k2">)</span>
<span class="number">  2</span>        <span class="k2">{</span>
<span class="number">  3</span>          <span class="c">//if (Human.x &gt;= NPCQuestOne.x - 40 &amp;&amp; Human.x &lt;= NPCQuestOne.x + 40 &amp;&amp; Human.y &gt;= NPCQuestOne.y - 40 &amp;&amp; Human.y &lt;= NPCQuestOne.y + 40)</span>
<span class="number">  4</span>          <span class="c">//{</span>
<span class="number">  5</span>          <span class="k1">if</span> <span class="k2">(</span>KEY_SPACE_PRESSED <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number">  6</span>          <span class="k2">{</span>
<span class="number">  7</span>            QuestDialog<span class="k2">(</span>Qs<span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>          <span class="k2">}</span>
<span class="number">  9</span>          KEY_SPACE_PRESSED <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 10</span>        <span class="k2">}</span>
<span class="number"> 11</span>        <span class="k1">else</span>
<span class="number"> 12</span>        <span class="k2">{</span>
<span class="number"> 13</span>          KEY_SPACE_PRESSED <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 14</span>        <span class="k2">}</span>
</div></div><p>

If this is done correct from what I read about <span class="source-code"><a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a></span> and <span class="source-code"><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a></span> then the same thing is happening. I press space dialog appears and instantly goes off screen :-(</p><p>I have now managed to take working code, implement it and break it. <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /></p><p>EDIT - I think this may have something to do with the way I coded my keys.<br />I thought for now it would be easier just to use F to interact and then press space to close dialog. Although when I press F text appears and disappears the same, even though now I&#39;m not checking any true/false values for F expect the initial press.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lasaqus7)</author>
		<pubDate>Tue, 12 May 2015 06:46:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh, there&#39;s your problem. </p><p>When you load a dialog, you&#39;ve got two options.</p><p><span class="remote-thumbnail"><span class="json">{"name":"465137-diablo-macintosh-screenshot-inventory-holding-carryings.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/b\/7b1b34c338a910dc0bdd16b60a194dbd.png","w":640,"h":480,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/b\/7b1b34c338a910dc0bdd16b60a194dbd"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/7/b/7b1b34c338a910dc0bdd16b60a194dbd-240.jpg" alt="465137-diablo-macintosh-screenshot-inventory-holding-carryings.png" width="240" height="180" /></span></p><p>1) A dialog box where the game keeps playing: Set a flag by pressing the &quot;dialog button&quot; for example, and whenever that flag is set, draw the dialog box.</p><div class="source-code snippet"><div class="inner"><pre>
<span class="k1">void</span> handle_dialog_box<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>

<span class="c">//... in main</span>

<span class="k1">bool</span> do_dialog_box <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>

<span class="k1">while</span><span class="k2">(</span><span class="k1">true</span><span class="k2">)</span>
<span class="k2">{</span>
<span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span><span class="k2">)</span>do_dialog_box <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> 
<span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> do_dialog_box <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>do_dialog_box <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="k1">if</span><span class="k2">(</span>do_dialog_box<span class="k2">)</span>handle_dialog_box<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//called every frame</span>
<span class="k2">}</span>
</pre></div></div><p>

<span class="remote-thumbnail"><span class="json">{"name":"Train-Conductor-2-Pause-menu.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/3\/032b6359deebccca2118de8a7c74caf6.png","w":800,"h":480,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/3\/032b6359deebccca2118de8a7c74caf6"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/0/3/032b6359deebccca2118de8a7c74caf6-240.jpg" alt="Train-Conductor-2-Pause-menu.png" width="240" height="144" /></span></p><p>2) A dialog box where the game is interrupted until the dialog exits. (Like pressing escape in most games.) In that case, the easiest way is to have a second game loop in the dialog itself. </p><p>That is, a call to say main_menu_dialog() goes to that function, and <i>stays there</i> until that dialog box&#39;s exit condition is satisfied, which calls return, and sends execution back to the main loop. </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">void</span> handle_dialog_box<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">while</span><span class="k2">(</span><span class="k1">true</span><span class="k2">)</span>
<span class="number">  4</span>        <span class="k2">{</span>
<span class="number">  5</span>        <span class="c">//do stuff in NEW loop</span>
<span class="number">  6</span>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span><span class="k1">break</span><span class="k2">;</span> <span class="c">//send execution back to main loop</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="number"> 11</span><span class="c">// in main</span>
<span class="number"> 12</span><span class="k1">while</span><span class="k2">(</span><span class="k1">true</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><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span><span class="k2">)</span>handle_dialog_box<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//called once, moving execution to there.</span>
<span class="number"> 15</span>    <span class="k2">}</span>
</div></div><p>

In case #1: You have to be careful to pass input to the dialog box while it&#39;s open.</p><p>In case #2: You have to make sure you events all get handled. You don&#39;t want to go to a new function only checking keyboard events, and then end up having all of the joystick/mouse/whatever events fill up like crazy until you return.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Tue, 12 May 2015 08:46:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Cheers again Chris</p><p>It&#39;s 5am here but I&#39;m still trying to get it right. Although I kinda guess I made some progress now knowing it doesn&#39;t seem to be the code you gave me, but now rather than my actually coding.</p><p>I&#39;m going to bed now but i&#39;ll be back at it when I wake up and hopefully make some progress <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lasaqus7)</author>
		<pubDate>Tue, 12 May 2015 08:52:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Did you manage to figure this out??
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Tue, 12 May 2015 18:18:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ll looking at it now Dizzy, make some changes and I&#39;ll see where I&#39;m at from them.</p><p>EDIT:- Still no further forward. I tried to add in the while loop Chris posted although my game froze up (if i debug at the loop it looks like it works, although I can&#39;t press the required key to cancel the loop, hence the freeze)</p><p>So back to editing/testing/reading etc. Something somewhere is gonna slap me in the face and it will work, just need to figure it out.</p><p>EDIT:- What I did want to ask is this taking my code(but cut right down)
</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">while</span> <span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  2</span>  <span class="k2">{</span>
<span class="number">  3</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  4</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>    <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number">  7</span>    <span class="k2">{</span>
<span class="number">  8</span>      render <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  9</span>    <span class="k2">}</span>
<span class="number"> 10</span>
<span class="number"> 11</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 12</span>    <span class="k2">{</span>
<span class="number"> 13</span>      <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 14</span>      <span class="k2">{</span>
<span class="number"> 15</span>      <span class="k1">case</span> ALLEGRO_KEY_F:
<span class="number"> 16</span>        keys<span class="k2">[</span>F<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 17</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 18</span>      <span class="k2">}</span>
<span class="number"> 19</span>    <span class="k2">}</span>
<span class="number"> 20</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 21</span>    <span class="k2">{</span>
<span class="number"> 22</span>      <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 23</span>      <span class="k2">{</span>
<span class="number"> 24</span>      <span class="k1">case</span> ALLEGRO_KEY_F:
<span class="number"> 25</span>        keys<span class="k2">[</span>F<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 26</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 27</span>      <span class="k2">}</span>
<span class="number"> 28</span>    <span class="k1">if</span> <span class="k2">(</span>render <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 29</span>    <span class="k2">{</span>
<span class="number"> 30</span>      render <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 31</span>      <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
<span class="number"> 32</span>      <span class="k2">{</span>
<span class="number"> 33</span>        <span class="c">//Check to see if player is at the NPC location and if F is pressed show quest</span>
<span class="number"> 34</span>        <span class="k1">if</span> <span class="k2">(</span>Human.x <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.x <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">+</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">+</span> <span class="n">40</span><span class="k2">)</span>
<span class="number"> 35</span>        <span class="k2">{</span>
<span class="number"> 36</span>          <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>F<span class="k2">]</span><span class="k2">)</span> <span class="c">//This should go true if F is pressed</span>
<span class="number"> 37</span>          <span class="k2">{</span>
<span class="number"> 38</span>            KEY_F_PRESSED <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="c">//This is true as F was pressed</span>
<span class="number"> 39</span>            <span class="k1">if</span> <span class="k2">(</span>KEY_F_PRESSED<span class="k2">)</span>
<span class="number"> 40</span>            <span class="k2">{</span>
<span class="number"> 41</span>              QuestDialog<span class="k2">(</span>Qs<span class="k2">)</span><span class="k2">;</span> <span class="c">//This shows as F was pressed</span>
<span class="number"> 42</span>            <span class="k2">}</span>
<span class="number"> 43</span>          <span class="k2">}</span>
<span class="number"> 44</span>        <span class="k2">}</span>
<span class="number"> 45</span>      <span class="k2">}</span>
<span class="number"> 46</span>      <span class="c">//FLIP BUFFERS =========================================</span>
<span class="number"> 47</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"> 48</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"> 49</span>    <span class="k2">}</span>
<span class="number"> 50</span>  <span class="k2">}</span>
<span class="number"> 51</span>
<span class="number"> 52</span><span class="k1">void</span> QuestDialog<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs<span class="k2">)</span>
<span class="number"> 53</span><span class="k2">{</span>
<span class="number"> 54</span>  <span class="c">//Draw box for the quest text to go in</span>
<span class="number"> 55</span>  
<span class="number"> 56</span>  <a href="http://www.allegro.cc/manual/al_draw_rounded_rectangle"><span class="a">al_draw_rounded_rectangle</span></a><span class="k2">(</span>WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">-</span> <span class="n">220</span>, <span class="n">550</span>, WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> <span class="n">220</span>, <span class="n">660</span>, <span class="n">2</span>, <span class="n">2</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="n">6</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 57</span>  <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">-</span> <span class="n">220</span>, <span class="n">550</span>, WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> <span class="n">220</span>, <span class="n">660</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">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 58</span>  <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 59</span>  <span class="k2">{</span>
<span class="number"> 60</span>    KEY_F_PRESSED <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 61</span>  <span class="k2">}</span>
<span class="number"> 62</span><span class="k2">}</span>
</div></div><p>
On the 2nd loop, is it correct to say that the <span class="source-code"><a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span></span> has now registered the F was released and now F = false, so when the code gets back to the state == playing, that since F is now false it will not go onto CheckDialog(Qs) and as such no longer display the rectangle ?</p><p>If so then this is what I cannot work out and this could be why even changing the key to a different key still doesn&#39;t work
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lasaqus7)</author>
		<pubDate>Tue, 12 May 2015 18:43:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well...yes, I think so...</p><p>Using your code above, the dialog will ONLY be displayed if you are standing in the right place AND holding down the F key!?</p><p>Is that what you want?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Tue, 12 May 2015 20:16:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No, I would prefer it if he stands in front of the NPC, presses a key to show Dialog and then presses a key (preferably the same key, as it would help to know how this works) for the dialog to be removed .</p><p>I&#39;m glad I actually understand what the code is doing, that&#39;s always a start :-)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lasaqus7)</author>
		<pubDate>Tue, 12 May 2015 20:20:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Something like this might help:</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> canPressKey <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  2</span>  <span class="k1">bool</span> keyPressed  <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  5</span>  <span class="k2">{</span>
<span class="number">  6</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  7</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<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>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 10</span>    <span class="k2">{</span>
<span class="number"> 11</span>      render <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 12</span>    <span class="k2">}</span>
<span class="number"> 13</span>
<span class="number"> 14</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 15</span>    <span class="k2">{</span>
<span class="number"> 16</span>      <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 17</span>      <span class="k2">{</span>
<span class="number"> 18</span>      <span class="k1">case</span> ALLEGRO_KEY_F:
<span class="number"> 19</span>        <span class="k1">if</span><span class="k2">(</span>canPressKey <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span><span class="k2">{</span>
<span class="number"> 20</span>            keys<span class="k2">[</span>F<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 21</span>            canPressKey <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 22</span>            
<span class="number"> 23</span>            keyPressed <span class="k3">=</span> <span class="k3">!</span>keyPressed<span class="k2">;</span>
<span class="number"> 24</span>        <span class="k2">}</span>
<span class="number"> 25</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 26</span>      <span class="k2">}</span>
<span class="number"> 27</span>    <span class="k2">}</span>
<span class="number"> 28</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 29</span>    <span class="k2">{</span>
<span class="number"> 30</span>      <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 31</span>      <span class="k2">{</span>
<span class="number"> 32</span>      <span class="k1">case</span> ALLEGRO_KEY_F:
<span class="number"> 33</span>        canPressKey <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 34</span>        keys<span class="k2">[</span>F<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 35</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 36</span>      <span class="k2">}</span>
<span class="number"> 37</span>    <span class="k1">if</span> <span class="k2">(</span>render <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 38</span>    <span class="k2">{</span>
<span class="number"> 39</span>      render <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 40</span>      <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
<span class="number"> 41</span>      <span class="k2">{</span>
<span class="number"> 42</span>        <span class="c">//Check to see if player is at the NPC location and if F is pressed show quest</span>
<span class="number"> 43</span>        <span class="k1">if</span> <span class="k2">(</span>Human.x <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.x <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.x <span class="k3">+</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&gt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">-</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Human.y <span class="k3">&lt;</span><span class="k3">=</span> NPCQuestOne.y <span class="k3">+</span> <span class="n">40</span><span class="k2">)</span>
<span class="number"> 44</span>        <span class="k2">{</span>
<span class="number"> 45</span>            <span class="k1">if</span> <span class="k2">(</span>keyPressed<span class="k2">)</span>
<span class="number"> 46</span>            <span class="k2">{</span>
<span class="number"> 47</span>              QuestDialog<span class="k2">(</span>Qs<span class="k2">)</span><span class="k2">;</span> <span class="c">//This shows as F was pressed</span>
<span class="number"> 48</span>            <span class="k2">}</span>
<span class="number"> 49</span>        <span class="k2">}</span>
<span class="number"> 50</span>      <span class="k2">}</span>
<span class="number"> 51</span>      <span class="c">//FLIP BUFFERS =========================================</span>
<span class="number"> 52</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"> 53</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"> 54</span>    <span class="k2">}</span>
<span class="number"> 55</span>  <span class="k2">}</span>
<span class="number"> 56</span>
<span class="number"> 57</span><span class="k1">void</span> QuestDialog<span class="k2">(</span>Quests <span class="k3">&amp;</span>Qs<span class="k2">)</span>
<span class="number"> 58</span><span class="k2">{</span>
<span class="number"> 59</span>  <span class="c">//Draw box for the quest text to go in</span>
<span class="number"> 60</span>  
<span class="number"> 61</span>  <a href="http://www.allegro.cc/manual/al_draw_rounded_rectangle"><span class="a">al_draw_rounded_rectangle</span></a><span class="k2">(</span>WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">-</span> <span class="n">220</span>, <span class="n">550</span>, WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> <span class="n">220</span>, <span class="n">660</span>, <span class="n">2</span>, <span class="n">2</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="n">6</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 62</span>  <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">-</span> <span class="n">220</span>, <span class="n">550</span>, WIDTH <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> <span class="n">220</span>, <span class="n">660</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">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 63</span>  <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 64</span>  <span class="k2">{</span>
<span class="number"> 65</span>    KEY_F_PRESSED <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 66</span>  <span class="k2">}</span>
<span class="number"> 67</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Tue, 12 May 2015 20:28:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p><p>Well done, I was looking at adding code to my event_key_down and up but it wouldn&#39;t have looked like that.</p><p>Thank you so much for that Dizzy it works.</p><p>Well for now it works, I just hope it stays that way.</p><p>Thanks so much for that and thank you too Chris for helping out
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lasaqus7)</author>
		<pubDate>Tue, 12 May 2015 20:38:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Cool! Hope it all goes well! <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Tue, 12 May 2015 20:39:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well knowing how that works, can help in my other additions I want to try and do :-)</p><p>I cannot thank you enough for that :-)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lasaqus7)</author>
		<pubDate>Tue, 12 May 2015 20:44:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre> <span class="k1">if</span><span class="k2">(</span>canPressKey <span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span><span class="k2">{</span>
</pre></div></div><p>

I think you mean
</p><div class="source-code snippet"><div class="inner"><pre> <span class="k1">if</span><span class="k2">(</span>canPressKey<span class="k2">)</span><span class="k2">{</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (beoran)</author>
		<pubDate>Tue, 12 May 2015 21:51:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Or even, <span class="source-code">canPressKey <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span></span>  <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Tue, 12 May 2015 21:54:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Exactly because of the risk of the error above, in C, I prefer to use booleans and pointers as such without the unneeded comparison to true, false or NULL. But there&#39;s no point in arguing about programming style, so let&#39;s not. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (beoran)</author>
		<pubDate>Tue, 12 May 2015 23:35:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m just happy is working :-)</p><p>Whichever way it was decided to be done is all good
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lasaqus7)</author>
		<pubDate>Wed, 13 May 2015 00:12:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Are these always identical?
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> x <span class="k3">=</span> <span class="n">1501</span><span class="k2">;</span>

<span class="k1">if</span><span class="k2">(</span>x<span class="k2">)</span><span class="k2">{</span><span class="k2">}</span>
<span class="k1">if</span><span class="k2">(</span>x <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span><span class="k2">{</span><span class="k2">}</span>
</pre></div></div><p>
That is to say, are there any cases where explicitly testing to true is not the same as implicit true?</p><p>And likewise:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>x<span class="k2">)</span><span class="k2">{</span><span class="k2">}</span> <span class="c">//Maybe?</span>
<span class="k1">if</span><span class="k2">(</span>x <span class="k3">=</span><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>

That logical negation is the one I&#39;m really wondering about.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Wed, 13 May 2015 00:18:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The proper way to prevent accidental assignment instead of equality comparison is to write the constant on the left hand side of the expression.
</p><div class="source-code snippet"><div class="inner"><pre>
<span class="k1">if</span> <span class="k2">(</span><span class="n">3</span> <span class="k3">=</span><span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_741.html" target="_blank">sscanf</a><span class="k2">(</span>input.c_str<span class="k2">(</span><span class="k2">)</span> , <span class="s">"COORDS %lf %lf %lf"</span> , <span class="k3">&amp;</span>x , <span class="k3">&amp;</span>y , <span class="k3">&amp;</span>z<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
   <span class="c">// success</span>
<span class="k2">}</span>
<span class="k1">else</span> <span class="k2">{</span>
   <span class="c">// error, didn't read all three arguments </span>
<span class="k2">}</span>
</pre></div></div><p>
That way, if you accidentally write 
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span> <span class="k2">(</span><span class="n">3</span> <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_741.html" target="_blank">sscanf</a><span class="k2">(</span><span class="c">/*...*/</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
   <span class="c">// compile error, you can't assign 3 a value</span>
<span class="k2">}</span>
</pre></div></div><p>
It will error out on you. In this case you could have written sscanf on the left hand side too, and if you tried to assign to it it would error. With gcc it says &quot;lvalue required as left operand of assignment&quot;.</p><p>As far as checking non-bool types against true or false, don&#39;t do it. true and false are usually defined as 1 and 0. However, implicit bool casts are okay :
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> x <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"x is %szero\n"</span> ,          <span class="k2">(</span>x<span class="k2">)</span>        ?<span class="s">"non-"</span><span class="k2">:</span><span class="s">""</span>    <span class="k2">)</span><span class="k2">;</span>
<a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"x is %sequal to true\n"</span> , <span class="k2">(</span>x <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>?<span class="s">""</span>    <span class="k2">:</span><span class="s">"not "</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 13 May 2015 01:12:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It also depends on whether it&#39;s C89 or C99 or C++. Here&#39;s an article on the subject:</p><p><a href="http://www.jacquesf.com/2011/04/in-defense-of-the-c99-boolean-type/">http://www.jacquesf.com/2011/04/in-defense-of-the-c99-boolean-type/</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (beoran)</author>
		<pubDate>Wed, 13 May 2015 01:43:24 +0000</pubDate>
	</item>
</rss>
