<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Allegro5 Cant get Tilemaps to work.</title>
		<link>http://www.allegro.cc/forums/view/611343</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 03 Nov 2012 16:29:41 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello everyone, im really new to Programming, i&#39;m reading books and also follow Online Tutorials to create my own RPG game as a &quot;Learning&quot; project.</p><p>Ive runned into this Problem tho, ive tried to search it up but havent found any usefull help so i&#39;m posting here to see if anyone could crack this problem to help me out. </p><p>I got this beginning of a RPG game with a Character with Sprite Animation, also Screen Scrolling, now im trying to add Tile maps and im not applying them directly in my code, i have a seperate .txt file that im trying to load it from, but somehow i cant get this to work, when i run the code i dont get ANY errors, just that the tiles are invisible... The online tutorial ive been follow did the exacly same thing and its working for him, i tried after hours and hours to copy his code and just run it to see what happend, and same thing happend nothing... code runns perfectly in my compiler with no erros but nothing shows up... is it something wrong with my Compiler? my installation of Allegro5? I mean everything els works in the Allegro 5 Library so i dont really understand.. </p><p>id preciate if anyone could look over my code and see if im doing something wrong!</p><p>Here is the code:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span>
<span class="number">   2</span><span class="p">#include&lt;allegro5\allegro5.h&gt; </span>
<span class="number">   3</span><span class="p">#include&lt;allegro5\allegro_native_dialog.h&gt; </span>
<span class="number">   4</span><span class="p">#include&lt;allegro5\allegro_primitives.h&gt;</span>
<span class="number">   5</span><span class="p">#include&lt;allegro5\allegro_image.h&gt;</span>
<span class="number">   6</span><span class="p">#include&lt;fstream&gt;</span>
<span class="number">   7</span><span class="p">#include&lt;string&gt;</span>
<span class="number">   8</span><span class="p">#include&lt;sstream&gt;</span>
<span class="number">   9</span><span class="p">#include&lt;vector&gt;</span>
<span class="number">  10</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="p">#define ScreenWidth 1024</span>
<span class="number">  13</span><span class="p">#define ScreenHeight 768</span>
<span class="number">  14</span><span class="p">#define BlockSize 40</span>
<span class="number">  15</span>
<span class="number">  16</span><span class="k1">int</span> loadCounterX <span class="k3">=</span> <span class="n">0</span>, loadCounterY <span class="k3">=</span> <span class="n">0</span>, mapSizeX, mapSizeY<span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span>
<span class="number">  19</span><span class="c">// %%%%%  TILE MAP LOADING TXT FILES  %%%%%//</span>
<span class="number">  20</span><span class="k1">void</span> LoadMap<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>filename, std::vector<span class="k3">&lt;</span> std::vector <span class="k3">&lt;</span>int&gt; <span class="k3">&gt;</span> <span class="k3">&amp;</span>map<span class="k2">)</span>
<span class="number">  21</span><span class="k2">{</span>
<span class="number">  22</span>  std::fstream openfile<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span>
<span class="number">  23</span>  <span class="k1">if</span><span class="k2">(</span>openfile.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  24</span>  <span class="k2">{</span>
<span class="number">  25</span>    std::string <a href="http://www.allegro.cc/manual/line"><span class="a">line</span></a>, value<span class="k2">;</span>
<span class="number">  26</span>    <span class="k1">int</span> space<span class="k2">;</span>
<span class="number">  27</span>
<span class="number">  28</span>    <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>openfile.eof<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  29</span>    <span class="k2">{</span>
<span class="number">  30</span>      std::getline<span class="k2">(</span>openfile, <a href="http://www.allegro.cc/manual/line"><span class="a">line</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>
<span class="number">  32</span>      std::stringstream str<span class="k2">(</span><a href="http://www.allegro.cc/manual/line"><span class="a">line</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>      std::vector<span class="k3">&lt;</span>int&gt; tempVector<span class="k2">;</span>
<span class="number">  34</span>
<span class="number">  35</span>      <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>str.eof<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  36</span>      <span class="k2">{</span>
<span class="number">  37</span>        std::getline<span class="k2">(</span>str, value, <span class="s">' '</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>        <span class="k1">if</span><span class="k2">(</span>value.length<span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  39</span>          tempVector.push_back<span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_54.html" target="_blank">atoi</a><span class="k2">(</span>value.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>      <span class="k2">}</span>
<span class="number">  41</span>      map.push_back<span class="k2">(</span>tempVector<span class="k2">)</span><span class="k2">;</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="k1">else</span>
<span class="number">  45</span>  <span class="k2">{</span>
<span class="number">  46</span>  <span class="k2">}</span>
<span class="number">  47</span>
<span class="number">  48</span><span class="k2">}</span>
<span class="number">  49</span>
<span class="number">  50</span>  <span class="c">// %%%%%  CAMERA SCROLLING  %%%%%//</span>
<span class="number">  51</span><span class="k1">void</span> cameraUpdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition, <span class="k1">float</span> x, <span class="k1">float</span> y, <span class="k1">int</span> width, <span class="k1">int</span> height<span class="k2">)</span>
<span class="number">  52</span><span class="k2">{</span>
<span class="number">  53</span>  cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>ScreenWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>x <span class="k3">+</span> width <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  54</span>  cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>ScreenWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>y <span class="k3">+</span> height <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  55</span>
<span class="number">  56</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  57</span>    cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  58</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  59</span>    cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  60</span>
<span class="number">  61</span><span class="k2">}</span>
<span class="number">  62</span><span class="k1">void</span> DrawMap<span class="k2">(</span>std::vector <span class="k3">&lt;</span>std::vector <span class="k3">&lt;</span>int&gt; <span class="k3">&gt;</span> map<span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>
<span class="number">  64</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  65</span><span class="k2">{</span>
<span class="number">  66</span>  <span class="c">// %%%%%  IMPORTANT SETTINGS  %%%%%//</span>
<span class="number">  67</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">;</span> 
<span class="number">  68</span>  <span class="k1">const</span> <span class="k1">float</span> FPS <span class="k3">=</span> <span class="n">60</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  69</span>  <span class="k1">const</span> <span class="k1">float</span> frameFPS <span class="k3">=</span> <span class="n">10</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  70</span>  <span class="k1">enum</span> Direction <span class="k2">{</span> DOWN, LEFT, RIGHT, UP <span class="k2">}</span><span class="k2">;</span>
<span class="number">  71</span>
<span class="number">  72</span>
<span class="number">  73</span>
<span class="number">  74</span>
<span class="number">  75</span>  <span class="c">// %%%%%  ERROR CODES, ALLEGRO AND DISPLAY  %%%%%//</span>
<span class="number">  76</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  77</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, <span class="s">"Error"</span>, NULL, <span class="s">"Could not Initialize Allegro"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span> 
<span class="number">  78</span>
<span class="number">  79</span>  display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>ScreenWidth, ScreenHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>
<span class="number">  81</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  82</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, <span class="s">"Error"</span>, NULL, <span class="s">"Could not create Allegro Display"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>
<span class="number">  84</span>
<span class="number">  85</span>  <span class="c">// %%%%%  WINDOW SETTINGS  %%%%%//</span>
<span class="number">  86</span>  
<span class="number">  87</span>  <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number">  88</span>  <a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a><span class="k2">(</span>display, <span class="n">200</span>, <span class="n">200</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>  <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>display, <span class="s">"PRE-alpha Test"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>  
<span class="number">  91</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> playerColor <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>
<span class="number">  93</span>
<span class="number">  94</span>  <span class="c">// %%%%%  Movement SPEED  %%%%%//</span>
<span class="number">  95</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span>, draw <span class="k3">=</span> <span class="k1">true</span>, active <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  96</span>  <span class="k1">float</span> x <span class="k3">=</span> <span class="n">512</span>, y <span class="k3">=</span> <span class="n">384</span>, moveSpeed <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number">  97</span>  <span class="k1">int</span> dir <span class="k3">=</span> DOWN, sourceX <span class="k3">=</span> <span class="n">64</span>, sourceY <span class="k3">=</span> <span class="n">96</span><span class="k2">;</span>
<span class="number">  98</span>  <span class="k1">float</span> cameraPosition<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> <span class="n">0</span>, <span class="n">0</span> <span class="k2">}</span><span class="k2">;</span>
<span class="number">  99</span>                                        
<span class="number"> 100</span>
<span class="number"> 101</span>  <span class="c">// %%%%%  ADDONS  %%%%%//</span>
<span class="number"> 102</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"> 103</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"> 104</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"> 105</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"> 106</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"> 107</span>
<span class="number"> 108</span>
<span class="number"> 109</span>  
<span class="number"> 110</span>
<span class="number"> 111</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>player <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"player.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>  <span class="c">/*ALLEGRO_BITMAP *background = al_load_bitmap("backgroundtest.png");*/</span>
<span class="number"> 113</span>  <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>player, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 114</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> KeyState<span class="k2">;</span>
<span class="number"> 115</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> camera<span class="k2">;</span>
<span class="number"> 116</span>
<span class="number"> 117</span>
<span class="number"> 118</span>  <span class="c">// %%%%%  EVENTS installation &amp; TIMERS %%%%%//</span>
<span class="number"> 119</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>frametimer <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> frameFPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>
<span class="number"> 122</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</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"> 124</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"> 125</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>frametimer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</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"> 127</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"> 128</span>
<span class="number"> 129</span>  
<span class="number"> 130</span>
<span class="number"> 131</span>  
<span class="number"> 132</span>
<span class="number"> 133</span>  <span class="c">// %%%%%  TIMER, NO installations UNDER THIS  %%%%%//</span>
<span class="number"> 134</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"> 135</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>frametimer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 136</span>
<span class="number"> 137</span>  <span class="c">// %%%%%  Beginning of Events %%%%%//</span>
<span class="number"> 138</span>
<span class="number"> 139</span>
<span class="number"> 140</span>  std::vector<span class="k3">&lt;</span> std::vector <span class="k3">&lt;</span>int&gt; <span class="k3">&gt;</span> map<span class="k2">;</span>
<span class="number"> 141</span>  LoadMap<span class="k2">(</span><span class="s">"map.txt"</span>, map<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 142</span>  
<span class="number"> 143</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 144</span>  <span class="k2">{</span>
<span class="number"> 145</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> events<span class="k2">;</span> 
<span class="number"> 146</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>events<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 147</span>    <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 148</span>
<span class="number"> 149</span>
<span class="number"> 150</span>   <span class="c">// %%%%%  TILE MAP IN THE EVENT &amp; TIMER CODE %%%%%//</span>
<span class="number"> 151</span>  
<span class="number"> 152</span>      <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 153</span>    <span class="k2">{</span>
<span class="number"> 154</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 155</span>    <span class="k2">}</span>
<span class="number"> 156</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 157</span>    <span class="k2">{</span>
<span class="number"> 158</span>      
<span class="number"> 159</span>    <span class="k2">}</span>
<span class="number"> 160</span>
<span class="number"> 161</span>    <span class="c">// %%%%%  KEYBOARD INPUT AND EVENTS AND PLAYER IMAGE AND CAMERA SCROLLING FOR CHARACTER %%%%%//</span>
<span class="number"> 162</span>    <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 163</span>    <span class="k2">{</span>
<span class="number"> 164</span>      <span class="k1">switch</span><span class="k2">(</span>events.keyboard.keycode<span class="k2">)</span>
<span class="number"> 165</span>      <span class="k2">{</span>
<span class="number"> 166</span>      <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 167</span>        done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 168</span>      <span class="k2">}</span>
<span class="number"> 169</span>    <span class="k2">}</span>
<span class="number"> 170</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 171</span>    <span class="k2">{</span>
<span class="number"> 172</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 173</span>    <span class="k2">}</span>
<span class="number"> 174</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type <span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 175</span>    <span class="k2">{</span>
<span class="number"> 176</span>      <span class="k1">if</span><span class="k2">(</span>events.timer.source <span class="k3">=</span><span class="k3">=</span> timer<span class="k2">)</span>
<span class="number"> 177</span>      <span class="k2">{</span>
<span class="number"> 178</span>      active <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 179</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_S<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 180</span>      <span class="k2">{</span>
<span class="number"> 181</span>       y <span class="k3">+</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 182</span>       dir <span class="k3">=</span> DOWN<span class="k2">;</span>
<span class="number"> 183</span>      <span class="k2">}</span>
<span class="number"> 184</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_W<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 185</span>      <span class="k2">{</span>
<span class="number"> 186</span>       y <span class="k3">-</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 187</span>       dir <span class="k3">=</span> UP<span class="k2">;</span>
<span class="number"> 188</span>      <span class="k2">}</span>
<span class="number"> 189</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_D<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 190</span>      <span class="k2">{</span>
<span class="number"> 191</span>        x <span class="k3">+</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 192</span>        dir <span class="k3">=</span> RIGHT<span class="k2">;</span>
<span class="number"> 193</span>      <span class="k2">}</span>
<span class="number"> 194</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_A<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 195</span>      <span class="k2">{</span>
<span class="number"> 196</span>        x <span class="k3">-</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 197</span>        dir <span class="k3">=</span> LEFT<span class="k2">;</span>
<span class="number"> 198</span>      <span class="k2">}</span>
<span class="number"> 199</span>      <span class="k1">else</span>
<span class="number"> 200</span>        active <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 201</span>
<span class="number"> 202</span>      cameraUpdate<span class="k2">(</span>cameraPosition, x, y, <span class="n">64</span>, <span class="n">96</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 203</span>      <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 204</span>      <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 205</span>      <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 206</span>
<span class="number"> 207</span>      <span class="k2">}</span>
<span class="number"> 208</span>
<span class="number"> 209</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.timer.source <span class="k3">=</span><span class="k3">=</span> frametimer<span class="k2">)</span>
<span class="number"> 210</span>      <span class="k2">{</span>
<span class="number"> 211</span>
<span class="number"> 212</span>      <span class="k1">if</span><span class="k2">(</span>active<span class="k2">)</span>
<span class="number"> 213</span>       sourceX <span class="k3">+</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>player<span class="k2">)</span> <span class="k3">/</span> <span class="n">4</span><span class="k2">;</span>
<span class="number"> 214</span>
<span class="number"> 215</span>      <span class="k1">else</span>
<span class="number"> 216</span>        sourceX <span class="k3">=</span> <span class="n">64</span><span class="k2">;</span>  
<span class="number"> 217</span>
<span class="number"> 218</span>      <span class="k1">if</span><span class="k2">(</span>sourceX <span class="k3">&gt;</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 219</span>        sourceX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 220</span>
<span class="number"> 221</span>      sourceY <span class="k3">=</span> dir<span class="k2">;</span>
<span class="number"> 222</span>      <span class="k2">}</span>
<span class="number"> 223</span>        draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 224</span>    <span class="k2">}</span>
<span class="number"> 225</span>
<span class="number"> 226</span>    <span class="k1">if</span><span class="k2">(</span>draw<span class="k2">)</span>
<span class="number"> 227</span>    <span class="k2">{</span>
<span class="number"> 228</span>
<span class="number"> 229</span>
<span class="number"> 230</span>    <span class="c">/*al_draw_bitmap(background, 0, 0, NULL);*/</span>
<span class="number"> 231</span>    
<span class="number"> 232</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, sourceX, dir <span class="k3">*</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>player<span class="k2">)</span> <span class="k3">/</span> <span class="n">4</span>, <span class="n">64</span>, <span class="n">96</span>, x, y, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 233</span>
<span class="number"> 234</span>    DrawMap<span class="k2">(</span>map<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 235</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"> 236</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"> 237</span>
<span class="number"> 238</span>
<span class="number"> 239</span>    <span class="k2">}</span>
<span class="number"> 240</span>
<span class="number"> 241</span>        
<span class="number"> 242</span>    <span class="c">// %%%%%  GAME UI SHELL  %%%%%//</span>
<span class="number"> 243</span>    <span class="c">/*al_draw_rectangle(1, 1, 800, 100, al_map_rgb(255, 50, 50), 9.0);*/</span>
<span class="number"> 244</span>    
<span class="number"> 245</span>    <span class="c">// %%%%%  Destroy ENDING  %%%%%//</span>
<span class="number"> 246</span>  <span class="k2">}</span>
<span class="number"> 247</span>  
<span class="number"> 248</span>  
<span class="number"> 249</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"> 250</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"> 251</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 252</span>  <span class="c">/*al_destroy_bitmap(background);*/</span>
<span class="number"> 253</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"> 254</span>  
<span class="number"> 255</span>  
<span class="number"> 256</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 257</span><span class="k2">}</span>
<span class="number"> 258</span>
<span class="number"> 259</span>
<span class="number"> 260</span>   <span class="c">//%%%%%  RITAR UPP TILES / FÄRG PÅ FYRKANTERNA  %%%%%//</span>
<span class="number"> 261</span><span class="k1">void</span> DrawMap<span class="k2">(</span>std::vector <span class="k3">&lt;</span>std::vector <span class="k3">&lt;</span>int&gt; <span class="k3">&gt;</span> map<span class="k2">)</span>
<span class="number"> 262</span>  <span class="k2">{</span>
<span class="number"> 263</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> map.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 264</span>    <span class="k2">{</span>
<span class="number"> 265</span>      <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> map.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 266</span>      <span class="k2">{</span>
<span class="number"> 267</span>        <span class="k1">if</span><span class="k2">(</span>map<span class="k2">[</span>i<span class="k2">]</span><span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 268</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>j <span class="k3">*</span> BlockSize, i  <span class="k3">*</span> BlockSize,
<span class="number"> 269</span>          j <span class="k3">*</span> BlockSize <span class="k3">+</span> BlockSize, i <span class="k3">=</span> BlockSize <span class="k3">+</span> BlockSize, <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">100</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 270</span>        <span class="k1">else</span>
<span class="number"> 271</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>j <span class="k3">*</span> BlockSize, i  <span class="k3">*</span> BlockSize,
<span class="number"> 272</span>          j <span class="k3">*</span> BlockSize <span class="k3">+</span> BlockSize, i <span class="k3">*</span> BlockSize <span class="k3">+</span> BlockSize, <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">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 273</span>      
<span class="number"> 274</span>      <span class="k2">}</span>
<span class="number"> 275</span>    <span class="k2">}</span>
<span class="number"> 276</span>  <span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Mon, 29 Oct 2012 09:11:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you want to post code, just place it between &lt;code&gt;&lt;/code&gt; tags.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include&lt;allegro5\allegro5.h&gt; </span>
<span class="number">   2</span><span class="p">#include&lt;allegro5\allegro_native_dialog.h&gt; </span>
<span class="number">   3</span><span class="p">#include&lt;allegro5\allegro_primitives.h&gt;</span>
<span class="number">   4</span><span class="p">#include&lt;allegro5\allegro_image.h&gt;</span>
<span class="number">   5</span><span class="p">#include&lt;fstream&gt;</span>
<span class="number">   6</span><span class="p">#include&lt;string&gt;</span>
<span class="number">   7</span><span class="p">#include&lt;sstream&gt;</span>
<span class="number">   8</span><span class="p">#include&lt;vector&gt;</span>
<span class="number">   9</span>
<span class="number">  10</span>
<span class="number">  11</span><span class="p">#define ScreenWidth 1024</span>
<span class="number">  12</span><span class="p">#define ScreenHeight 768</span>
<span class="number">  13</span><span class="p">#define BlockSize 40</span>
<span class="number">  14</span>
<span class="number">  15</span><span class="k1">int</span> loadCounterX <span class="k3">=</span> <span class="n">0</span>, loadCounterY <span class="k3">=</span> <span class="n">0</span>, mapSizeX, mapSizeY<span class="k2">;</span>
<span class="number">  16</span>
<span class="number">  17</span>
<span class="number">  18</span><span class="c">// %%%%%  TILE MAP LOADING TXT FILES  %%%%%//</span>
<span class="number">  19</span><span class="k1">void</span> LoadMap<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>filename, std::vector<span class="k3">&lt;</span> std::vector <span class="k3">&lt;</span>int&gt; <span class="k3">&gt;</span> <span class="k3">&amp;</span>map<span class="k2">)</span>
<span class="number">  20</span><span class="k2">{</span>
<span class="number">  21</span>  std::fstream openfile<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span>
<span class="number">  22</span>  <span class="k1">if</span><span class="k2">(</span>openfile.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  23</span>  <span class="k2">{</span>
<span class="number">  24</span>    std::string <a href="http://www.allegro.cc/manual/line"><span class="a">line</span></a>, value<span class="k2">;</span>
<span class="number">  25</span>    <span class="k1">int</span> space<span class="k2">;</span>
<span class="number">  26</span>
<span class="number">  27</span>    <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>openfile.eof<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  28</span>    <span class="k2">{</span>
<span class="number">  29</span>      std::getline<span class="k2">(</span>openfile, <a href="http://www.allegro.cc/manual/line"><span class="a">line</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>
<span class="number">  31</span>      std::stringstream str<span class="k2">(</span><a href="http://www.allegro.cc/manual/line"><span class="a">line</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>      std::vector<span class="k3">&lt;</span>int&gt; tempVector<span class="k2">;</span>
<span class="number">  33</span>
<span class="number">  34</span>      <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>str.eof<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  35</span>      <span class="k2">{</span>
<span class="number">  36</span>        std::getline<span class="k2">(</span>str, value, <span class="s">' '</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>        <span class="k1">if</span><span class="k2">(</span>value.length<span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  38</span>          tempVector.push_back<span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_54.html" target="_blank">atoi</a><span class="k2">(</span>value.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>      <span class="k2">}</span>
<span class="number">  40</span>      map.push_back<span class="k2">(</span>tempVector<span class="k2">)</span><span class="k2">;</span>
<span class="number">  41</span>    <span class="k2">}</span>
<span class="number">  42</span>  <span class="k2">}</span>
<span class="number">  43</span>  <span class="k1">else</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="number">  47</span><span class="k2">}</span>
<span class="number">  48</span>
<span class="number">  49</span>  <span class="c">// %%%%%  CAMERA SCROLLING  %%%%%//</span>
<span class="number">  50</span><span class="k1">void</span> cameraUpdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition, <span class="k1">float</span> x, <span class="k1">float</span> y, <span class="k1">int</span> width, <span class="k1">int</span> height<span class="k2">)</span>
<span class="number">  51</span><span class="k2">{</span>
<span class="number">  52</span>  cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>ScreenWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>x <span class="k3">+</span> width <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>  cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>ScreenWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>y <span class="k3">+</span> height <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  54</span>
<span class="number">  55</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  56</span>    cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  57</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  58</span>    cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  59</span>
<span class="number">  60</span><span class="k2">}</span>
<span class="number">  61</span><span class="k1">void</span> DrawMap<span class="k2">(</span>std::vector <span class="k3">&lt;</span>std::vector <span class="k3">&lt;</span>int&gt; <span class="k3">&gt;</span> map<span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>
<span class="number">  63</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  64</span><span class="k2">{</span>
<span class="number">  65</span>  <span class="c">// %%%%%  IMPORTANT SETTINGS  %%%%%//</span>
<span class="number">  66</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">;</span> 
<span class="number">  67</span>  <span class="k1">const</span> <span class="k1">float</span> FPS <span class="k3">=</span> <span class="n">60</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  68</span>  <span class="k1">const</span> <span class="k1">float</span> frameFPS <span class="k3">=</span> <span class="n">10</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  69</span>  <span class="k1">enum</span> Direction <span class="k2">{</span> DOWN, LEFT, RIGHT, UP <span class="k2">}</span><span class="k2">;</span>
<span class="number">  70</span>
<span class="number">  71</span>
<span class="number">  72</span>
<span class="number">  73</span>
<span class="number">  74</span>  <span class="c">// %%%%%  ERROR CODES, ALLEGRO AND DISPLAY  %%%%%//</span>
<span class="number">  75</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  76</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, <span class="s">"Error"</span>, NULL, <span class="s">"Could not Initialize Allegro"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span> 
<span class="number">  77</span>
<span class="number">  78</span>  display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>ScreenWidth, ScreenHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number">  79</span>
<span class="number">  80</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  81</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, <span class="s">"Error"</span>, NULL, <span class="s">"Could not create Allegro Display"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>
<span class="number">  83</span>
<span class="number">  84</span>  <span class="c">// %%%%%  WINDOW SETTINGS  %%%%%//</span>
<span class="number">  85</span>  
<span class="number">  86</span>  <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>  <a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a><span class="k2">(</span>display, <span class="n">200</span>, <span class="n">200</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  88</span>  <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>display, <span class="s">"PRE-alpha Test"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>  
<span class="number">  90</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> playerColor <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  91</span>
<span class="number">  92</span>
<span class="number">  93</span>  <span class="c">// %%%%%  Movement SPEED  %%%%%//</span>
<span class="number">  94</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span>, draw <span class="k3">=</span> <span class="k1">true</span>, active <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  95</span>  <span class="k1">float</span> x <span class="k3">=</span> <span class="n">512</span>, y <span class="k3">=</span> <span class="n">384</span>, moveSpeed <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number">  96</span>  <span class="k1">int</span> dir <span class="k3">=</span> DOWN, sourceX <span class="k3">=</span> <span class="n">64</span>, sourceY <span class="k3">=</span> <span class="n">96</span><span class="k2">;</span>
<span class="number">  97</span>  <span class="k1">float</span> cameraPosition<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> <span class="n">0</span>, <span class="n">0</span> <span class="k2">}</span><span class="k2">;</span>
<span class="number">  98</span>                                        
<span class="number">  99</span>
<span class="number"> 100</span>  <span class="c">// %%%%%  ADDONS  %%%%%//</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_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"> 104</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"> 105</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"> 106</span>
<span class="number"> 107</span>
<span class="number"> 108</span>  
<span class="number"> 109</span>
<span class="number"> 110</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>player <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"player.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>  <span class="c">/*ALLEGRO_BITMAP *background = al_load_bitmap("backgroundtest.png");*/</span>
<span class="number"> 112</span>  <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>player, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> KeyState<span class="k2">;</span>
<span class="number"> 114</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> camera<span class="k2">;</span>
<span class="number"> 115</span>
<span class="number"> 116</span>
<span class="number"> 117</span>  <span class="c">// %%%%%  EVENTS installation &amp; TIMERS %%%%%//</span>
<span class="number"> 118</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>frametimer <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> frameFPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>
<span class="number"> 121</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 122</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"> 123</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"> 124</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>frametimer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</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"> 126</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"> 127</span>
<span class="number"> 128</span>  
<span class="number"> 129</span>
<span class="number"> 130</span>  
<span class="number"> 131</span>
<span class="number"> 132</span>  <span class="c">// %%%%%  TIMER, NO installations UNDER THIS  %%%%%//</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>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>frametimer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 135</span>
<span class="number"> 136</span>  <span class="c">// %%%%%  Beginning of Events %%%%%//</span>
<span class="number"> 137</span>
<span class="number"> 138</span>
<span class="number"> 139</span>  std::vector<span class="k3">&lt;</span> std::vector <span class="k3">&lt;</span>int&gt; <span class="k3">&gt;</span> map<span class="k2">;</span>
<span class="number"> 140</span>  LoadMap<span class="k2">(</span><span class="s">"map.txt"</span>, map<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 141</span>  
<span class="number"> 142</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 143</span>  <span class="k2">{</span>
<span class="number"> 144</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> events<span class="k2">;</span> 
<span class="number"> 145</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>events<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 146</span>    <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 147</span>
<span class="number"> 148</span>
<span class="number"> 149</span>   <span class="c">// %%%%%  TILE MAP IN THE EVENT &amp; TIMER CODE %%%%%//</span>
<span class="number"> 150</span>  
<span class="number"> 151</span>      <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 152</span>    <span class="k2">{</span>
<span class="number"> 153</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 154</span>    <span class="k2">}</span>
<span class="number"> 155</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 156</span>    <span class="k2">{</span>
<span class="number"> 157</span>      
<span class="number"> 158</span>    <span class="k2">}</span>
<span class="number"> 159</span>
<span class="number"> 160</span>    <span class="c">// %%%%%  KEYBOARD INPUT AND EVENTS AND PLAYER IMAGE AND CAMERA SCROLLING FOR CHARACTER %%%%%//</span>
<span class="number"> 161</span>    <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 162</span>    <span class="k2">{</span>
<span class="number"> 163</span>      <span class="k1">switch</span><span class="k2">(</span>events.keyboard.keycode<span class="k2">)</span>
<span class="number"> 164</span>      <span class="k2">{</span>
<span class="number"> 165</span>      <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 166</span>        done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 167</span>      <span class="k2">}</span>
<span class="number"> 168</span>    <span class="k2">}</span>
<span class="number"> 169</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 170</span>    <span class="k2">{</span>
<span class="number"> 171</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 172</span>    <span class="k2">}</span>
<span class="number"> 173</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type <span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 174</span>    <span class="k2">{</span>
<span class="number"> 175</span>      <span class="k1">if</span><span class="k2">(</span>events.timer.source <span class="k3">=</span><span class="k3">=</span> timer<span class="k2">)</span>
<span class="number"> 176</span>      <span class="k2">{</span>
<span class="number"> 177</span>      active <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 178</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_S<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 179</span>      <span class="k2">{</span>
<span class="number"> 180</span>       y <span class="k3">+</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 181</span>       dir <span class="k3">=</span> DOWN<span class="k2">;</span>
<span class="number"> 182</span>      <span class="k2">}</span>
<span class="number"> 183</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_W<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 184</span>      <span class="k2">{</span>
<span class="number"> 185</span>       y <span class="k3">-</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 186</span>       dir <span class="k3">=</span> UP<span class="k2">;</span>
<span class="number"> 187</span>      <span class="k2">}</span>
<span class="number"> 188</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_D<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 189</span>      <span class="k2">{</span>
<span class="number"> 190</span>        x <span class="k3">+</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 191</span>        dir <span class="k3">=</span> RIGHT<span class="k2">;</span>
<span class="number"> 192</span>      <span class="k2">}</span>
<span class="number"> 193</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_A<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 194</span>      <span class="k2">{</span>
<span class="number"> 195</span>        x <span class="k3">-</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 196</span>        dir <span class="k3">=</span> LEFT<span class="k2">;</span>
<span class="number"> 197</span>      <span class="k2">}</span>
<span class="number"> 198</span>      <span class="k1">else</span>
<span class="number"> 199</span>        active <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 200</span>
<span class="number"> 201</span>      cameraUpdate<span class="k2">(</span>cameraPosition, x, y, <span class="n">64</span>, <span class="n">96</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 202</span>      <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 203</span>      <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 204</span>      <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 205</span>
<span class="number"> 206</span>      <span class="k2">}</span>
<span class="number"> 207</span>
<span class="number"> 208</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.timer.source <span class="k3">=</span><span class="k3">=</span> frametimer<span class="k2">)</span>
<span class="number"> 209</span>      <span class="k2">{</span>
<span class="number"> 210</span>
<span class="number"> 211</span>      <span class="k1">if</span><span class="k2">(</span>active<span class="k2">)</span>
<span class="number"> 212</span>       sourceX <span class="k3">+</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>player<span class="k2">)</span> <span class="k3">/</span> <span class="n">4</span><span class="k2">;</span>
<span class="number"> 213</span>
<span class="number"> 214</span>      <span class="k1">else</span>
<span class="number"> 215</span>        sourceX <span class="k3">=</span> <span class="n">64</span><span class="k2">;</span>  
<span class="number"> 216</span>
<span class="number"> 217</span>      <span class="k1">if</span><span class="k2">(</span>sourceX <span class="k3">&gt;</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 218</span>        sourceX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 219</span>
<span class="number"> 220</span>      sourceY <span class="k3">=</span> dir<span class="k2">;</span>
<span class="number"> 221</span>      <span class="k2">}</span>
<span class="number"> 222</span>        draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 223</span>    <span class="k2">}</span>
<span class="number"> 224</span>
<span class="number"> 225</span>    <span class="k1">if</span><span class="k2">(</span>draw<span class="k2">)</span>
<span class="number"> 226</span>    <span class="k2">{</span>
<span class="number"> 227</span>
<span class="number"> 228</span>
<span class="number"> 229</span>    <span class="c">/*al_draw_bitmap(background, 0, 0, NULL);*/</span>
<span class="number"> 230</span>    
<span class="number"> 231</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, sourceX, dir <span class="k3">*</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>player<span class="k2">)</span> <span class="k3">/</span> <span class="n">4</span>, <span class="n">64</span>, <span class="n">96</span>, x, y, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 232</span>
<span class="number"> 233</span>    DrawMap<span class="k2">(</span>map<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 234</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"> 235</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"> 236</span>
<span class="number"> 237</span>
<span class="number"> 238</span>    <span class="k2">}</span>
<span class="number"> 239</span>
<span class="number"> 240</span>        
<span class="number"> 241</span>    <span class="c">// %%%%%  GAME UI SHELL  %%%%%//</span>
<span class="number"> 242</span>    <span class="c">/*al_draw_rectangle(1, 1, 800, 100, al_map_rgb(255, 50, 50), 9.0);*/</span>
<span class="number"> 243</span>    
<span class="number"> 244</span>    <span class="c">// %%%%%  Destroy ENDING  %%%%%//</span>
<span class="number"> 245</span>  <span class="k2">}</span>
<span class="number"> 246</span>  
<span class="number"> 247</span>  
<span class="number"> 248</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"> 249</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"> 250</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 251</span>  <span class="c">/*al_destroy_bitmap(background);*/</span>
<span class="number"> 252</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"> 253</span>  
<span class="number"> 254</span>  
<span class="number"> 255</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 256</span><span class="k2">}</span>
<span class="number"> 257</span>
<span class="number"> 258</span>
<span class="number"> 259</span>   <span class="c">//%%%%%  RITAR UPP TILES / FÄRG PÅ FYRKANTERNA  %%%%%//</span>
<span class="number"> 260</span><span class="k1">void</span> DrawMap<span class="k2">(</span>std::vector <span class="k3">&lt;</span>std::vector <span class="k3">&lt;</span>int&gt; <span class="k3">&gt;</span> map<span class="k2">)</span>
<span class="number"> 261</span>  <span class="k2">{</span>
<span class="number"> 262</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> map.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 263</span>    <span class="k2">{</span>
<span class="number"> 264</span>      <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> map.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 265</span>      <span class="k2">{</span>
<span class="number"> 266</span>        <span class="k1">if</span><span class="k2">(</span>map<span class="k2">[</span>i<span class="k2">]</span><span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 267</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>j <span class="k3">*</span> BlockSize, i  <span class="k3">*</span> BlockSize,
<span class="number"> 268</span>          j <span class="k3">*</span> BlockSize <span class="k3">+</span> BlockSize, i <span class="k3">=</span> BlockSize <span class="k3">+</span> BlockSize, <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">100</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 269</span>        <span class="k1">else</span>
<span class="number"> 270</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>j <span class="k3">*</span> BlockSize, i  <span class="k3">*</span> BlockSize,
<span class="number"> 271</span>          j <span class="k3">*</span> BlockSize <span class="k3">+</span> BlockSize, i <span class="k3">*</span> BlockSize <span class="k3">+</span> BlockSize, <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">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 272</span>      
<span class="number"> 273</span>      <span class="k2">}</span>
<span class="number"> 274</span>    <span class="k2">}</span>
<span class="number"> 275</span>  <span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Mon, 29 Oct 2012 09:55:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks alot LennyLen,</p><p>for some reason my mind set was set at [] instead of &lt;&gt; <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Mon, 29 Oct 2012 09:58:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><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">//main.cpp</span>
<span class="number">   2</span> <span class="c">//</span>
<span class="number">   3</span> <span class="c">//  cPlayer.h</span>
<span class="number">   4</span> <span class="c">//  Allegro</span>
<span class="number">   5</span> <span class="c">//</span>
<span class="number">   6</span> <span class="c">//  Created by Angel Bates on 10/27/12.</span>
<span class="number">   7</span> <span class="c">//  Copyright (c) 2012 Angel Bates. All rights reserved.</span>
<span class="number">   8</span> <span class="c">//</span>
<span class="number">   9</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;fstream&gt;</span>
<span class="number">  11</span><span class="p">#include &lt;allegro5/allegro.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_image.h&gt;</span>
<span class="number">  14</span><span class="p">#include "cPlayer.h"</span>
<span class="number">  15</span>
<span class="number">  16</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span><span class="k1">void</span> loadmap<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span><span class="k1">void</span> updateBitTile<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles, <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span><span class="k1">bool</span> Collision<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> x, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  21</span>
<span class="number">  22</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span>
<span class="number">  23</span><span class="k2">{</span>
<span class="number">  24</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">  25</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  26</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">  27</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> player <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  28</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  29</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  30</span>    
<span class="number">  31</span>    <a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</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">  33</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">  34</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">  35</span>    
<span class="number">  36</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>    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">  38</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> <span class="n">120</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>    player <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Knight.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>    tiles <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Tiles.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  41</span>    BitTile <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_bitmap"><span class="a">al_create_bitmap</span></a><span class="k2">(</span><span class="n">1280</span>, <span class="n">960</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span>    
<span class="number">  44</span>    <span class="k1">bool</span> Exit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  45</span>    <span class="k1">bool</span> Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  46</span>    <span class="k1">bool</span> KeyDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  47</span>    
<span class="number">  48</span>    <span class="k1">bool</span> kLeft <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  49</span>    <span class="k1">bool</span> kRight <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  50</span>    <span class="k1">bool</span> kUp <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  51</span>    <span class="k1">bool</span> kDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  52</span>    
<span class="number">  53</span>    
<span class="number">  54</span>    
<span class="number">  55</span>    <span class="k1">int</span> Counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  56</span>    
<span class="number">  57</span>    <span class="k1">int</span> OffsetX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  58</span>    <span class="k1">int</span> OffsetY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  59</span>    
<span class="number">  60</span>    <span class="k1">int</span> Tiles<span class="k2">[</span><span class="n">40</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  61</span>    
<span class="number">  62</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>x<span class="k2">)</span>
<span class="number">  63</span>    <span class="k2">{</span>
<span class="number">  64</span>        <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>y<span class="k2">)</span>
<span class="number">  65</span>        <span class="k2">{</span>
<span class="number">  66</span>            Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  67</span>        <span class="k2">}</span>
<span class="number">  68</span>    <span class="k2">}</span>
<span class="number">  69</span>    
<span class="number">  70</span>    loadmap<span class="k2">(</span>Tiles<span class="k2">)</span><span class="k2">;</span>
<span class="number">  71</span>    updateBitTile<span class="k2">(</span>Tiles, BitTile, tiles, display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  72</span>    
<span class="number">  73</span>    cPlayer Player<span class="k2">(</span><span class="n">640</span><span class="k3">/</span><span class="n">2</span><span class="k3">-</span><span class="n">16</span>, <span class="n">480</span><span class="k3">/</span><span class="n">2</span><span class="k3">-</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>    
<span class="number">  75</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>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">  76</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>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">  77</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>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">  78</span>    
<span class="number">  79</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">  80</span>    
<span class="number">  81</span>    <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>Exit<span class="k2">)</span>
<span class="number">  82</span>    <span class="k2">{</span>
<span class="number">  83</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">  84</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>queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</span>        
<span class="number">  86</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">  87</span>        <span class="k2">{</span>
<span class="number">  88</span>            <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number">  89</span>            <span class="k2">{</span>
<span class="number">  90</span>                <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number">  91</span>                    Exit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  92</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number">  93</span>                <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number">  94</span>                    Player.SetDir<span class="k2">(</span>LEFT<span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>                    KeyDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  96</span>                    kLeft <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  97</span>                    Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  98</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number">  99</span>                <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 100</span>                    Player.SetDir<span class="k2">(</span>RIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 101</span>                    KeyDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 102</span>                    kRight <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 103</span>                    Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 104</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 105</span>                <span class="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 106</span>                    Player.SetDir<span class="k2">(</span>UP<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 107</span>                    KeyDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 108</span>                    kUp <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 109</span>                    Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 110</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 111</span>                <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 112</span>                    Player.SetDir<span class="k2">(</span>DOWN<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</span>                    KeyDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 114</span>                    kDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 115</span>                    Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 116</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 117</span>            <span class="k2">}</span>
<span class="number"> 118</span>        <span class="k2">}</span>
<span class="number"> 119</span>        
<span class="number"> 120</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"> 121</span>        <span class="k2">{</span>
<span class="number"> 122</span>            <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 123</span>            <span class="k2">{</span>
<span class="number"> 124</span>                <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 125</span>                    kLeft <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 126</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 127</span>                <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 128</span>                    kRight <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 129</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 130</span>                <span class="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 131</span>                    kUp <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 132</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 133</span>                <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 134</span>                    kDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 135</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 136</span>            <span class="k2">}</span>
<span class="number"> 137</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>kRight <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>kUp <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>kDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>kLeft<span class="k2">)</span>
<span class="number"> 138</span>                KeyDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 139</span>        <span class="k2">}</span>
<span class="number"> 140</span>        
<span class="number"> 141</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"> 142</span>        <span class="k2">{</span>
<span class="number"> 143</span>            <span class="k1">switch</span> <span class="k2">(</span>Player.GetDir<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 144</span>            <span class="k2">{</span>
<span class="number"> 145</span>                <span class="k1">case</span> LEFT:
<span class="number"> 146</span>                    <span class="k1">if</span> <span class="k2">(</span>KeyDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 147</span>                        <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">31</span> <span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k2">)</span>
<span class="number"> 148</span>                    <span class="k2">{</span>
<span class="number"> 149</span>                        Player.Move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 150</span>                        <span class="k3">+</span><span class="k3">+</span>Counter<span class="k2">;</span>
<span class="number"> 151</span>                        <span class="k3">-</span><span class="k3">-</span>OffsetX<span class="k2">;</span>
<span class="number"> 152</span>                        Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 153</span>                    <span class="k2">}</span>
<span class="number"> 154</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 155</span>                <span class="k1">case</span> RIGHT:
<span class="number"> 156</span>                    <span class="k1">if</span> <span class="k2">(</span>KeyDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">32</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 157</span>                        <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">32</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">31</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k2">)</span>
<span class="number"> 158</span>                    <span class="k2">{</span>
<span class="number"> 159</span>                        Player.Move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 160</span>                        <span class="k3">+</span><span class="k3">+</span>Counter<span class="k2">;</span>
<span class="number"> 161</span>                        <span class="k3">+</span><span class="k3">+</span>OffsetX<span class="k2">;</span>
<span class="number"> 162</span>                        Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 163</span>                    <span class="k2">}</span>
<span class="number"> 164</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 165</span>                <span class="k1">case</span> UP:
<span class="number"> 166</span>                    <span class="k1">if</span> <span class="k2">(</span>KeyDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 167</span>                        <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">31</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="k3">-</span><span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k2">)</span>
<span class="number"> 168</span>                    <span class="k2">{</span>
<span class="number"> 169</span>                        Player.Move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 170</span>                        <span class="k3">+</span><span class="k3">+</span>Counter<span class="k2">;</span>
<span class="number"> 171</span>                        <span class="k3">-</span><span class="k3">-</span>OffsetY<span class="k2">;</span>
<span class="number"> 172</span>                        Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 173</span>                    <span class="k2">}</span>
<span class="number"> 174</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 175</span>                <span class="k1">case</span> DOWN:
<span class="number"> 176</span>                    <span class="k1">if</span> <span class="k2">(</span>KeyDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">32</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 177</span>                        <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">31</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">32</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k2">)</span>
<span class="number"> 178</span>                    <span class="k2">{</span>
<span class="number"> 179</span>                        Player.Move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 180</span>                        <span class="k3">+</span><span class="k3">+</span>Counter<span class="k2">;</span>
<span class="number"> 181</span>                        <span class="k3">+</span><span class="k3">+</span>OffsetY<span class="k2">;</span>
<span class="number"> 182</span>                        Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 183</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="k2">}</span>
<span class="number"> 186</span>            <span class="k1">if</span> <span class="k2">(</span>Counter <span class="k3">=</span><span class="k3">=</span> <span class="n">30</span><span class="k2">)</span>
<span class="number"> 187</span>            <span class="k2">{</span>
<span class="number"> 188</span>                Player.Tick<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 189</span>                Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 190</span>                Counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 191</span>            <span class="k2">}</span>
<span class="number"> 192</span>            
<span class="number"> 193</span>        <span class="k2">}</span>
<span class="number"> 194</span>        
<span class="number"> 195</span>        <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>queue<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Redraw<span class="k2">)</span>
<span class="number"> 196</span>        <span class="k2">{</span>
<span class="number"> 197</span>            <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">250</span>, <span class="n">250</span>, <span class="n">250</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 198</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>BitTile, <span class="n">0</span><span class="k3">-</span>OffsetX, <span class="n">0</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 199</span><span class="c">//            switch (Player.GetDir()) {</span>
<span class="number"> 200</span><span class="c">//                case LEFT:</span>
<span class="number"> 201</span><span class="c">//                    al_draw_bitmap_region(player, Player.GetFrame() ? 32 : 0, 64, 32, 32, Player.GetX()-OffsetX, Player.GetY()-OffsetY, NULL);</span>
<span class="number"> 202</span><span class="c">//                    break;</span>
<span class="number"> 203</span><span class="c">//                    </span>
<span class="number"> 204</span><span class="c">//                case RIGHT:</span>
<span class="number"> 205</span><span class="c">//                    al_draw_bitmap_region(player, Player.GetFrame() ? 32 : 0, 96, 32, 32, Player.GetX()-OffsetX, Player.GetY()-OffsetY, NULL);</span>
<span class="number"> 206</span><span class="c">//                    break;</span>
<span class="number"> 207</span><span class="c">//                </span>
<span class="number"> 208</span><span class="c">//                case UP:</span>
<span class="number"> 209</span><span class="c">//                    al_draw_bitmap_region(player, Player.GetFrame() ? 32 : 0, 32, 32, 32, Player.GetX()-OffsetX, Player.GetY()-OffsetY, NULL);</span>
<span class="number"> 210</span><span class="c">//                    break;</span>
<span class="number"> 211</span><span class="c">//                    </span>
<span class="number"> 212</span><span class="c">//                case DOWN:</span>
<span class="number"> 213</span><span class="c">//                    al_draw_bitmap_region(player, Player.GetFrame() ? 32 : 0, 0, 32, 32, Player.GetX()-OffsetX, Player.GetY()-OffsetY, NULL);</span>
<span class="number"> 214</span><span class="c">//                    break;</span>
<span class="number"> 215</span><span class="c">//                    </span>
<span class="number"> 216</span><span class="c">//            }</span>
<span class="number"> 217</span>            <span class="k1">switch</span> <span class="k2">(</span>Player.GetDir<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 218</span>                <span class="k1">case</span> LEFT:
<span class="number"> 219</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, Player.GetFrame<span class="k2">(</span><span class="k2">)</span> ? <span class="n">20</span> <span class="k2">:</span> <span class="n">13</span> , <span class="n">64</span>, <span class="n">20</span>, <span class="n">32</span>, Player.GetX<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetX, Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</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="number"> 222</span>                <span class="k1">case</span> RIGHT:
<span class="number"> 223</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, Player.GetFrame<span class="k2">(</span><span class="k2">)</span> ? <span class="n">32</span> <span class="k2">:</span> <span class="n">0</span>, <span class="n">96</span>, <span class="n">32</span>, <span class="n">32</span>, Player.GetX<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetX, Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 224</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 225</span>                    
<span class="number"> 226</span>                <span class="k1">case</span> UP:
<span class="number"> 227</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, Player.GetFrame<span class="k2">(</span><span class="k2">)</span> ? <span class="n">32</span> <span class="k2">:</span> <span class="n">0</span>, <span class="n">32</span>, <span class="n">32</span>, <span class="n">32</span>, Player.GetX<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetX, Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 228</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 229</span>                    
<span class="number"> 230</span>                <span class="k1">case</span> DOWN:
<span class="number"> 231</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, Player.GetFrame<span class="k2">(</span><span class="k2">)</span> ? <span class="n">62</span> <span class="k2">:</span> <span class="n">14</span>, <span class="n">8</span>, <span class="n">20</span>, <span class="n">32</span>, Player.GetX<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetX, Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</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="number"> 234</span>            <span class="k2">}</span>
<span class="number"> 235</span>
<span class="number"> 236</span>            <a href="http://www.allegro.cc/manual/al_draw_pixel"><span class="a">al_draw_pixel</span></a><span class="k2">(</span><span class="k2">(</span><span class="n">304</span><span class="k3">-</span>Player.GetX<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k3">/</span><span class="n">32</span>, <span class="k2">(</span><span class="n">224</span><span class="k3">-</span>Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k3">/</span><span class="n">32</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">250</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 237</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"> 238</span>            Redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 239</span>        <span class="k2">}</span>
<span class="number"> 240</span>    <span class="k2">}</span>
<span class="number"> 241</span>    
<span class="number"> 242</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"> 243</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"> 244</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>queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 245</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 246</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>tiles<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 247</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>BitTile<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 248</span>    
<span class="number"> 249</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 250</span><span class="k2">}</span>
<span class="number"> 251</span><span class="k1">void</span> loadmap<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">)</span>
<span class="number"> 252</span><span class="k2">{</span>
<span class="number"> 253</span>    <span class="k1">int</span> x<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>, y<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 254</span>    <span class="k1">int</span> temp<span class="k2">;</span>
<span class="number"> 255</span>    ifstream Map<span class="k2">(</span><span class="s">"Map1.txt"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 256</span>    <span class="k1">if</span> <span class="k2">(</span>Map.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 257</span>    <span class="k2">{</span>
<span class="number"> 258</span>        <span class="k1">while</span><span class="k2">(</span>Map <span class="k3">&gt;</span><span class="k3">&gt;</span> temp<span class="k2">)</span>
<span class="number"> 259</span>        <span class="k2">{</span>
<span class="number"> 260</span>            Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> temp<span class="k2">;</span>
<span class="number"> 261</span>            <span class="k3">+</span><span class="k3">+</span>x<span class="k2">;</span>
<span class="number"> 262</span>            <span class="k1">if</span> <span class="k2">(</span>x <span class="k3">=</span><span class="k3">=</span> <span class="n">40</span><span class="k2">)</span>
<span class="number"> 263</span>            <span class="k2">{</span>
<span class="number"> 264</span>                x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 265</span>                <span class="k3">+</span><span class="k3">+</span>y<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="k2">}</span>
<span class="number"> 269</span>    Map.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 270</span><span class="k2">}</span>
<span class="number"> 271</span><span class="k1">void</span> updateBitTile<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles, <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display<span class="k2">)</span>
<span class="number"> 272</span><span class="k2">{</span> <span class="c">//creates a bitmap from tiles instead of drawing all tiles seperately, fucking awesome ryte?</span>
<span class="number"> 273</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>BitTile<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 274</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>x<span class="k2">)</span>
<span class="number"> 275</span>    <span class="k2">{</span>
<span class="number"> 276</span>        <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>y<span class="k2">)</span>
<span class="number"> 277</span>        <span class="k2">{</span>
<span class="number"> 278</span>            <span class="c">/*switch (Tiles[x][y])</span>
<span class="number"> 279</span><span class="c">            {</span>
<span class="number"> 280</span><span class="c">                case 0:</span>
<span class="number"> 281</span><span class="c">                    al_draw_bitmap_region(tiles, 0, 0, 32, 32, x*32, y*32, NULL);</span>
<span class="number"> 282</span><span class="c">                    break;</span>
<span class="number"> 283</span><span class="c">                case 1:</span>
<span class="number"> 284</span><span class="c">                    al_draw_bitmap_region(tiles, 32, 0, 32, 32, x*32, y*32, NULL);</span>
<span class="number"> 285</span><span class="c">                    break;</span>
<span class="number"> 286</span><span class="c">            } */</span>
<span class="number"> 287</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>tiles, Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k3">*</span><span class="n">32</span>, <span class="n">0</span>, <span class="n">32</span>, <span class="n">32</span>, x<span class="k3">*</span><span class="n">32</span>, y<span class="k3">*</span><span class="n">32</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 288</span>        <span class="k2">}</span>
<span class="number"> 289</span>    <span class="k2">}</span>
<span class="number"> 290</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 291</span>    
<span class="number"> 292</span>   <span class="c">// al_save_bitmap("Screenshot.png", BitTile);</span>
<span class="number"> 293</span><span class="k2">}</span>
<span class="number"> 294</span><span class="k1">bool</span> Collision<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> x, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> y<span class="k2">)</span>
<span class="number"> 295</span><span class="k2">{</span>
<span class="number"> 296</span>    <span class="k1">if</span> <span class="k2">(</span>Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 297</span>        <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 298</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 299</span><span class="k2">}</span>
<span class="number"> 300</span>
<span class="number"> 301</span><span class="c">//cPlayer.h</span>
<span class="number"> 302</span><span class="c">//</span>
<span class="number"> 303</span><span class="c">//  cPlayer.h</span>
<span class="number"> 304</span><span class="c">//  Allegro</span>
<span class="number"> 305</span><span class="c">//</span>
<span class="number"> 306</span><span class="c">//  Created by Angel Bates on 10/27/12.</span>
<span class="number"> 307</span><span class="c">//  Copyright (c) 2012 Angel Bates. All rights reserved.</span>
<span class="number"> 308</span><span class="c">//</span>
<span class="number"> 309</span>
<span class="number"> 310</span><span class="p">#ifndef Allegro_cPlayer_h</span>
<span class="number"> 311</span><span class="p">#define Allegro_cPlayer_h</span>
<span class="number"> 312</span>
<span class="number"> 313</span><span class="k1">enum</span> Directions <span class="k2">{</span> LEFT, RIGHT, UP, DOWN <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 314</span>
<span class="number"> 315</span>
<span class="number"> 316</span><span class="k1">class</span> cPlayer <span class="k2">{</span>
<span class="number"> 317</span>public:
<span class="number"> 318</span>    cPlayer<span class="k2">(</span><span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> i_X, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> i_Y<span class="k2">)</span><span class="k2">:</span>m_X<span class="k2">(</span>i_X<span class="k2">)</span>, m_Y<span class="k2">(</span>i_Y<span class="k2">)</span>, m_SmallFrame<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>, m_Dir<span class="k2">(</span>LEFT<span class="k2">)</span> <span class="k2">{</span> <span class="k2">}</span>
<span class="number"> 319</span>    
<span class="number"> 320</span>    <span class="k1">void</span> Tick<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k2">(</span>m_SmallFrame <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span> ? m_SmallFrame <span class="k3">=</span> <span class="n">0</span> <span class="k2">:</span> m_SmallFrame <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 321</span>    
<span class="number"> 322</span>    <span class="k1">int</span> GetFrame<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k1">return</span> m_SmallFrame<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 323</span>    
<span class="number"> 324</span>    <span class="k1">int</span> GetX<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k1">return</span> m_X<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 325</span>    <span class="k1">int</span> GetY<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k1">return</span> m_Y<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 326</span>    
<span class="number"> 327</span>    <span class="k1">void</span> SetCords<span class="k2">(</span><span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> i_X, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> i_Y<span class="k2">)</span> <span class="k2">{</span> m_X <span class="k3">=</span> i_X<span class="k2">;</span> m_Y <span class="k3">=</span> i_Y<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 328</span>    
<span class="number"> 329</span>    <span class="k1">void</span> Move<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 330</span>    <span class="k2">{</span>
<span class="number"> 331</span>        <span class="k1">switch</span><span class="k2">(</span>m_Dir<span class="k2">)</span>
<span class="number"> 332</span>        <span class="k2">{</span>
<span class="number"> 333</span>            <span class="k1">case</span> LEFT:
<span class="number"> 334</span>                <span class="k3">-</span><span class="k3">-</span>m_X<span class="k2">;</span>
<span class="number"> 335</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 336</span>            <span class="k1">case</span> RIGHT:
<span class="number"> 337</span>                <span class="k3">+</span><span class="k3">+</span>m_X<span class="k2">;</span>
<span class="number"> 338</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 339</span>            <span class="k1">case</span> UP:
<span class="number"> 340</span>                <span class="k3">-</span><span class="k3">-</span>m_Y<span class="k2">;</span>
<span class="number"> 341</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 342</span>            <span class="k1">case</span> DOWN:
<span class="number"> 343</span>                <span class="k3">+</span><span class="k3">+</span>m_Y<span class="k2">;</span>
<span class="number"> 344</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 345</span>        <span class="k2">}</span>
<span class="number"> 346</span>    <span class="k2">}</span>
<span class="number"> 347</span>    
<span class="number"> 348</span>    Directions GetDir<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k1">return</span> m_Dir<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 349</span>    
<span class="number"> 350</span>    <span class="k1">void</span> SetDir<span class="k2">(</span><span class="k1">const</span> Directions<span class="k3">&amp;</span> i_Dir<span class="k2">)</span> <span class="k2">{</span> m_Dir <span class="k3">=</span> i_Dir<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 351</span>    
<span class="number"> 352</span>    
<span class="number"> 353</span>    
<span class="number"> 354</span>private:
<span class="number"> 355</span>    <span class="k1">int</span> m_X, m_Y<span class="k2">;</span>
<span class="number"> 356</span>    <span class="k1">int</span> m_SmallFrame<span class="k2">;</span>
<span class="number"> 357</span>    Directions m_Dir<span class="k2">;</span>
<span class="number"> 358</span>    
<span class="number"> 359</span>    
<span class="number"> 360</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 361</span>
<span class="number"> 362</span>
<span class="number"> 363</span><span class="p">#endif</span>
</div></div><p>

Heres my code to a simple Tilemap application thingy, it loads a map thats 32*40, 32*30 and instead of drawing each tile separately (like you do) it makes a bitmap from the tiles, which can be easily updated/drawn - reducing cpu% from 30-50 to around 4%<br />You can edit it/do whatever you want with it if it helps <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /><br /><a href="http://i.imgur.com/11tVr.png">http://i.imgur.com/11tVr.png</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Mon, 29 Oct 2012 10:18:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks alot Angeljruiz!</p><p>I will have to read through this code for a VERY long time <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> <br />i recognize alot of it but im very new to programming as you can probebly see, thanks alot tho for sharing your code with me to help me with my problem <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>ifstream Map(&quot;Map1.txt&quot;); <br />Hmm, getting error, dont really know where you are going with it, think its a typo but cant figure out what it should say.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Mon, 29 Oct 2012 10:38:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I was thinking about going with this approach with my current game, but my maps are 1024x1024 tiles big and the tiles are 16x16 pixels. This translates to a 16384x16384 image which would take up 1 GB of video RAM. <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /></p><p>...yeah, had to take a different approach, more like how the NES works. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Mon, 29 Oct 2012 13:06:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah my code wasent really optimal, but thats fine i love to learn, so people that could improve my knowledge i really appreciate it, tho right now im having problem with the ifstream Map(&quot;Map1.txt&quot;); in Angel&#39;s Code, hmm like i said my Knowledge is really thin im learning new things everyday!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Mon, 29 Oct 2012 13:09:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeahh making it into a bitmap only works if the map isnt that big :p<br />But im not at my house right now so i cant give you the map but the format is really easy its just 0-4 40 number wide and 30 numbers high, tiles with the #0 are solid the rest arent<br />I guess ill give you the sprites to go with it too :p</p><p>@Kris - how did you load/display your tiles?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Mon, 29 Oct 2012 19:34:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>yeah that would be great Angel so i could have a look how everything is working together, its just in the code the ifstream map(&quot;map1.txt&quot;);</p><p>The ifstream is a typo isent it? because i get an error,if stream map,fstream map, doesent work either,ive tried to think what it should say but im stuck there <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Tue, 30 Oct 2012 00:15:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I dont know why you would be getting a error like that. If you didnt already know ifstream is a (i)nput (f)ile stream. Its used to open read/write to files. Its functions are declared in the fstream header so if you have #include &lt;fstream&gt; in your code it should work
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Tue, 30 Oct 2012 00:47:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That is extremly odd, yeah i got &lt;fstream&gt; included, and thank you for explaining what ifstream does, hmm... this is very odd...</p><div class="source-code snippet"><div class="inner"><pre>
<span class="k1">void</span> loadmap<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">)</span>
<span class="k2">{</span>
    <span class="k1">int</span> x<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>, y<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k1">int</span> temp<span class="k2">;</span>
  ifstream map<span class="k2">(</span><span class="s">"map.txt"</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k1">if</span> <span class="k2">(</span>Map.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
</pre></div></div><p>


ifstream map(&quot;map.txt&quot;);  &lt;---- identifier ifstream is Undefined<br />if (Map.is_open())  &lt;---- identifier &quot;map&quot;  is undefined
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Tue, 30 Oct 2012 00:52:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Im not sure exactly... If you have the header file included and using namespace std right under it and you&#39;re compiling it as a c++ file, not a c file, it should work
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Tue, 30 Oct 2012 01:02:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Alright i got the ifstream to work now, the problem was i forgot the &quot;using namespace std;&quot; <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> stupid noob mistake, now i get the &#39;map&#39; undeclared identifier, so i gotta look why it is undeclared, i must have forgot something in the code, Anyway if you could attache the sprite image and the .txt so i could just have a look at it how it works i would appreciate it a ton! When your at your home that is. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> thanks again Angel
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Tue, 30 Oct 2012 01:11:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You have ifstream map and Map.is_open() , there capitalized differently :p<br />Ill be home i about 2 hours but you could easily make the map.txt file by just filling 40x30 with ones and just use any sprite for the character
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Tue, 30 Oct 2012 01:23:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah thank you i missed the small M so now my code runns into NO errors, tho nothing shows up when i use the txt file, to be exact im writing the 1&#39;s like this:</p><div class="source-code snippet"><div class="inner"><pre><span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span>
<span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span>
<span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span>
<span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span>
<span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span>
</pre></div></div><p>

Anyway the same problem like my own code, nothing shows up.<br />and im sorry i meant the tiles not the sprites before, i think im messing something up in my .txt file or my tiles.png file and thats why nothin shows up, so ill just wait until you get the time to send me your files so i can have a look what i&#39;m doing wrong here <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Tue, 30 Oct 2012 01:53:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>map1.txt
</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="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> 
<span class="number">  2</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number">  3</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number">  4</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number">  5</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span>
<span class="number">  6</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span>
<span class="number">  7</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">0</span> <span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span>
<span class="number">  8</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">0</span> <span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span>
<span class="number">  9</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">0</span> <span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span>
<span class="number"> 10</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">0</span> <span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span>
<span class="number"> 11</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">0</span> <span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span>
<span class="number"> 12</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span>
<span class="number"> 13</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 14</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span>
<span class="number"> 15</span><span class="n">0</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">2</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">3</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 16</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 17</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 18</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 19</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 20</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 21</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 22</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 23</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 24</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 25</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 26</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 27</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 28</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 29</span><span class="n">0</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">4</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> 
<span class="number"> 30</span><span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span>
</div></div><p>
<a href="http://art.devsader.com/content/contributions/sprites/BoyKnight_Moosader.png">http://art.devsader.com/content/contributions/sprites/BoyKnight_Moosader.png</a> &lt;- Save as Player.png<br /><a href="http://art.devsader.com/content/contributions/textures/FloorTiles_Moosader.png">http://art.devsader.com/content/contributions/textures/FloorTiles_Moosader.png</a> &lt;- Save as Tiles.png</p><p>And uncomment the first set of switch statements and comment out the 2nd set </p><p>EDIT: <br />Also go check out moosader.com , its where i got the sprites from (they have no copy right so you can do whatever with them) , it has alot of free sprites and tutorials, its actually what got me coding
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Tue, 30 Oct 2012 03:19:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Alright, thanks alot Angel, trying everything out right now, i get the concept now ive learned ALOT by starting this Topic, i see now that i have to make every tiles 32x32 and then the program will just crop 1 image 32x32 and assigning a numer to the tile right so lets say, 1 = grass tile, if i assigne it to be the first 32x32 in the png to 1?</p><p>Also i get this error now, Debug error R6010 Abort. i have no idea why im getting it i guess something has the wrong value in my code, ill just post my new code if anyone ever got time to throw an eye on it.</p><p>[EDIT] When i switch the position of the :<br />loadmap(Tiles);<br />updateBitTile(Tiles, BitTile, tiles, display);<br />to higher up in the code the Error R6010 abort is gone, but still no Tiles are shown, just a black window with my lonely Character sprite <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />, tho if i uncomment the Switch code Case 0 and Case 1, and then comment out the al_draw_bitmap_region(tiles, Tiles[x][y]*32, 0, 32, 32, x*32, y*32, NULL);<br />i get no error but still no tile map, if i uncomment the:<br />al_draw_bitmap_region(tiles, Tiles[x][y]*32, 0, 32, 32, x*32, y*32, NULL);<br />i get Error again, same one R6010, hmmm </p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;allegro5\allegro_native_dialog.h&gt; </span>
<span class="number">   2</span><span class="p">#include &lt;allegro5\allegro_primitives.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5\allegro_image.h&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;fstream&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;string&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;sstream&gt;</span>
<span class="number">   7</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">   8</span><span class="p">#include &lt;allegro5\allegro5.h&gt;</span>
<span class="number">   9</span>
<span class="number">  10</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="p">#define ScreenWidth 1024</span>
<span class="number">  13</span><span class="p">#define ScreenHeight 768</span>
<span class="number">  14</span>
<span class="number">  15</span><span class="k1">int</span> loadCounterX <span class="k3">=</span> <span class="n">0</span>, loadCounterY <span class="k3">=</span> <span class="n">0</span>, mapSizeX, mapSizeY<span class="k2">;</span>
<span class="number">  16</span>
<span class="number">  17</span><span class="k1">void</span> loadmap<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span><span class="k1">void</span> updateBitTile<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles, <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span>
<span class="number">  20</span><span class="c">// %%%%%  TILE MAP LOADING TXT FILES  %%%%%//</span>
<span class="number">  21</span>
<span class="number">  22</span>  <span class="c">// %%%%%  CAMERA SCROLLING  %%%%%//</span>
<span class="number">  23</span><span class="k1">void</span> cameraUpdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition, <span class="k1">float</span> x, <span class="k1">float</span> y, <span class="k1">int</span> width, <span class="k1">int</span> height<span class="k2">)</span>
<span class="number">  24</span><span class="k2">{</span>
<span class="number">  25</span>  cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>ScreenWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>x <span class="k3">+</span> width <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  26</span>  cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>ScreenWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>y <span class="k3">+</span> height <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  27</span>
<span class="number">  28</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  29</span>    cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  30</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  31</span>    cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  32</span>
<span class="number">  33</span><span class="k2">}</span>
<span class="number">  34</span>
<span class="number">  35</span>
<span class="number">  36</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  37</span><span class="k2">{</span>
<span class="number">  38</span>  <span class="c">// %%%%%  IMPORTANT SETTINGS  %%%%%//</span>
<span class="number">  39</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">;</span> 
<span class="number">  40</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  41</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  42</span>  <span class="k1">const</span> <span class="k1">float</span> FPS <span class="k3">=</span> <span class="n">60</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  43</span>  <span class="k1">const</span> <span class="k1">float</span> frameFPS <span class="k3">=</span> <span class="n">10</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  44</span>  <span class="k1">enum</span> Direction <span class="k2">{</span> DOWN, LEFT, RIGHT, UP <span class="k2">}</span><span class="k2">;</span>
<span class="number">  45</span>
<span class="number">  46</span>
<span class="number">  47</span>
<span class="number">  48</span>
<span class="number">  49</span>  <span class="c">// %%%%%  ERROR CODES, ALLEGRO AND DISPLAY  %%%%%//</span>
<span class="number">  50</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  51</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, <span class="s">"Error"</span>, NULL, <span class="s">"Could not Initialize Allegro"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span> 
<span class="number">  52</span>
<span class="number">  53</span>  display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>ScreenWidth, ScreenHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number">  54</span>
<span class="number">  55</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  56</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, <span class="s">"Error"</span>, NULL, <span class="s">"Could not create Allegro Display"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span>
<span class="number">  58</span>
<span class="number">  59</span>  <span class="c">// %%%%%  WINDOW SETTINGS  %%%%%//</span>
<span class="number">  60</span>  
<span class="number">  61</span>  <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>  <a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a><span class="k2">(</span>display, <span class="n">200</span>, <span class="n">200</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>  <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>display, <span class="s">"PRE-alpha Test"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>  
<span class="number">  65</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> playerColor <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  66</span>
<span class="number">  67</span>
<span class="number">  68</span>  <span class="c">// %%%%%  Movement SPEED  %%%%%//</span>
<span class="number">  69</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span>, draw <span class="k3">=</span> <span class="k1">true</span>, active <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  70</span>  <span class="k1">float</span> x <span class="k3">=</span> <span class="n">512</span>, y <span class="k3">=</span> <span class="n">384</span>, moveSpeed <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number">  71</span>  <span class="k1">int</span> dir <span class="k3">=</span> DOWN, sourceX <span class="k3">=</span> <span class="n">64</span>, sourceY <span class="k3">=</span> <span class="n">96</span><span class="k2">;</span>
<span class="number">  72</span>  <span class="k1">float</span> cameraPosition<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> <span class="n">0</span>, <span class="n">0</span> <span class="k2">}</span><span class="k2">;</span>
<span class="number">  73</span>                                        
<span class="number">  74</span>
<span class="number">  75</span>  <span class="c">// %%%%%  ADDONS  %%%%%//</span>
<span class="number">  76</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">  77</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">  78</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">  79</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">  80</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">  81</span>
<span class="number">  82</span>
<span class="number">  83</span>  BitTile <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_bitmap"><span class="a">al_create_bitmap</span></a><span class="k2">(</span><span class="n">1280</span>, <span class="n">960</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>  tiles <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Tiles.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</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>player <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"player.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>  <span class="c">/*ALLEGRO_BITMAP *background = al_load_bitmap("backgroundtest.png");*/</span>
<span class="number">  88</span>  <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>player, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> KeyState<span class="k2">;</span>
<span class="number">  90</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> camera<span class="k2">;</span>
<span class="number">  91</span>
<span class="number">  92</span>  <span class="k1">int</span> Tiles<span class="k2">[</span><span class="n">40</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  93</span>
<span class="number">  94</span>  <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>x<span class="k2">)</span>
<span class="number">  95</span>    <span class="k2">{</span>
<span class="number">  96</span>        <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>y<span class="k2">)</span>
<span class="number">  97</span>        <span class="k2">{</span>
<span class="number">  98</span>            Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  99</span>        <span class="k2">}</span>
<span class="number"> 100</span>    <span class="k2">}</span>
<span class="number"> 101</span>
<span class="number"> 102</span>  loadmap<span class="k2">(</span>Tiles<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span>  updateBitTile<span class="k2">(</span>Tiles, BitTile, tiles, display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 104</span>
<span class="number"> 105</span>  <span class="c">// %%%%%  EVENTS installation &amp; TIMERS %%%%%//</span>
<span class="number"> 106</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 107</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>frametimer <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> frameFPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</span>
<span class="number"> 109</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</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"> 111</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"> 112</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>frametimer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</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"> 114</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"> 115</span>
<span class="number"> 116</span>  
<span class="number"> 117</span>
<span class="number"> 118</span>  
<span class="number"> 119</span>
<span class="number"> 120</span>  <span class="c">// %%%%%  TIMER, NO installations UNDER THIS  %%%%%//</span>
<span class="number"> 121</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"> 122</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>frametimer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>
<span class="number"> 124</span>  <span class="c">// %%%%%  Beginning of Events %%%%%//</span>
<span class="number"> 125</span>
<span class="number"> 126</span>  
<span class="number"> 127</span>  
<span class="number"> 128</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 129</span>  <span class="k2">{</span>
<span class="number"> 130</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> events<span class="k2">;</span> 
<span class="number"> 131</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>events<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</span>    <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>
<span class="number"> 134</span>
<span class="number"> 135</span>   <span class="c">// %%%%%  TILE MAP IN THE EVENT &amp; TIMER CODE %%%%%//</span>
<span class="number"> 136</span>  
<span class="number"> 137</span>      <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 138</span>    <span class="k2">{</span>
<span class="number"> 139</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 140</span>    <span class="k2">}</span>
<span class="number"> 141</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 142</span>    <span class="k2">{</span>
<span class="number"> 143</span>      
<span class="number"> 144</span>    <span class="k2">}</span>
<span class="number"> 145</span>
<span class="number"> 146</span>    <span class="c">// %%%%%  KEYBOARD INPUT AND EVENTS AND PLAYER IMAGE AND CAMERA SCROLLING FOR CHARACTER %%%%%//</span>
<span class="number"> 147</span>    <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 148</span>    <span class="k2">{</span>
<span class="number"> 149</span>      <span class="k1">switch</span><span class="k2">(</span>events.keyboard.keycode<span class="k2">)</span>
<span class="number"> 150</span>      <span class="k2">{</span>
<span class="number"> 151</span>      <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 152</span>        done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 153</span>      <span class="k2">}</span>
<span class="number"> 154</span>    <span class="k2">}</span>
<span class="number"> 155</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 156</span>    <span class="k2">{</span>
<span class="number"> 157</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 158</span>    <span class="k2">}</span>
<span class="number"> 159</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type <span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 160</span>    <span class="k2">{</span>
<span class="number"> 161</span>      <span class="k1">if</span><span class="k2">(</span>events.timer.source <span class="k3">=</span><span class="k3">=</span> timer<span class="k2">)</span>
<span class="number"> 162</span>      <span class="k2">{</span>
<span class="number"> 163</span>      active <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 164</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_S<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 165</span>      <span class="k2">{</span>
<span class="number"> 166</span>       y <span class="k3">+</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 167</span>       dir <span class="k3">=</span> DOWN<span class="k2">;</span>
<span class="number"> 168</span>      <span class="k2">}</span>
<span class="number"> 169</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_W<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 170</span>      <span class="k2">{</span>
<span class="number"> 171</span>       y <span class="k3">-</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 172</span>       dir <span class="k3">=</span> UP<span class="k2">;</span>
<span class="number"> 173</span>      <span class="k2">}</span>
<span class="number"> 174</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_D<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 175</span>      <span class="k2">{</span>
<span class="number"> 176</span>        x <span class="k3">+</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 177</span>        dir <span class="k3">=</span> RIGHT<span class="k2">;</span>
<span class="number"> 178</span>      <span class="k2">}</span>
<span class="number"> 179</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_A<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 180</span>      <span class="k2">{</span>
<span class="number"> 181</span>        x <span class="k3">-</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 182</span>        dir <span class="k3">=</span> LEFT<span class="k2">;</span>
<span class="number"> 183</span>      <span class="k2">}</span>
<span class="number"> 184</span>      <span class="k1">else</span>
<span class="number"> 185</span>        active <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 186</span>
<span class="number"> 187</span>      cameraUpdate<span class="k2">(</span>cameraPosition, x, y, <span class="n">64</span>, <span class="n">96</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 188</span>      <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 189</span>      <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 190</span>      <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 191</span>
<span class="number"> 192</span>      <span class="k2">}</span>
<span class="number"> 193</span>
<span class="number"> 194</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.timer.source <span class="k3">=</span><span class="k3">=</span> frametimer<span class="k2">)</span>
<span class="number"> 195</span>      <span class="k2">{</span>
<span class="number"> 196</span>
<span class="number"> 197</span>      <span class="k1">if</span><span class="k2">(</span>active<span class="k2">)</span>
<span class="number"> 198</span>       sourceX <span class="k3">+</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>player<span class="k2">)</span> <span class="k3">/</span> <span class="n">4</span><span class="k2">;</span>
<span class="number"> 199</span>
<span class="number"> 200</span>      <span class="k1">else</span>
<span class="number"> 201</span>        sourceX <span class="k3">=</span> <span class="n">64</span><span class="k2">;</span>  
<span class="number"> 202</span>
<span class="number"> 203</span>      <span class="k1">if</span><span class="k2">(</span>sourceX <span class="k3">&gt;</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 204</span>        sourceX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 205</span>
<span class="number"> 206</span>      sourceY <span class="k3">=</span> dir<span class="k2">;</span>
<span class="number"> 207</span>      <span class="k2">}</span>
<span class="number"> 208</span>        draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 209</span>    <span class="k2">}</span>
<span class="number"> 210</span>
<span class="number"> 211</span>    <span class="k1">if</span><span class="k2">(</span>draw<span class="k2">)</span>
<span class="number"> 212</span>    <span class="k2">{</span>
<span class="number"> 213</span>
<span class="number"> 214</span>
<span class="number"> 215</span>    <span class="c">/*al_draw_bitmap(background, 0, 0, NULL);*/</span>
<span class="number"> 216</span>    
<span class="number"> 217</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, sourceX, dir <span class="k3">*</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>player<span class="k2">)</span> <span class="k3">/</span> <span class="n">4</span>, <span class="n">64</span>, <span class="n">96</span>, x, y, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 218</span>
<span class="number"> 219</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"> 220</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"> 221</span>
<span class="number"> 222</span>
<span class="number"> 223</span>    <span class="k2">}</span>
<span class="number"> 224</span>
<span class="number"> 225</span>        
<span class="number"> 226</span>    <span class="c">// %%%%%  GAME UI SHELL  %%%%%//</span>
<span class="number"> 227</span>    <span class="c">/*al_draw_rectangle(1, 1, 800, 100, al_map_rgb(255, 50, 50), 9.0);*/</span>
<span class="number"> 228</span>    
<span class="number"> 229</span>    <span class="c">// %%%%%  Destroy ENDING  %%%%%//</span>
<span class="number"> 230</span>  <span class="k2">}</span>
<span class="number"> 231</span>  
<span class="number"> 232</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>tiles<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 233</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>BitTile<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 234</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"> 235</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"> 236</span>  <a href="http://www.allegro.cc/manual/al_destroy_timer"><span class="a">al_destroy_timer</span></a><span class="k2">(</span>frametimer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 237</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 238</span>  <span class="c">/*al_destroy_bitmap(background);*/</span>
<span class="number"> 239</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"> 240</span>  
<span class="number"> 241</span>  
<span class="number"> 242</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 243</span><span class="k2">}</span>
<span class="number"> 244</span>
<span class="number"> 245</span>
<span class="number"> 246</span><span class="k1">void</span> loadmap<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">)</span>
<span class="number"> 247</span><span class="k2">{</span>
<span class="number"> 248</span>    <span class="k1">int</span> x<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>, y<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 249</span>    <span class="k1">int</span> temp<span class="k2">;</span>
<span class="number"> 250</span>  ifstream Map<span class="k2">(</span><span class="s">"map.txt"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 251</span>
<span class="number"> 252</span>    <span class="k1">if</span> <span class="k2">(</span>Map.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 253</span>    <span class="k2">{</span>
<span class="number"> 254</span>        <span class="k1">while</span><span class="k2">(</span>Map <span class="k3">&gt;</span><span class="k3">&gt;</span> temp<span class="k2">)</span>
<span class="number"> 255</span>        <span class="k2">{</span>
<span class="number"> 256</span>            Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> temp<span class="k2">;</span>
<span class="number"> 257</span>            <span class="k3">+</span><span class="k3">+</span>x<span class="k2">;</span>
<span class="number"> 258</span>            <span class="k1">if</span> <span class="k2">(</span>x <span class="k3">=</span><span class="k3">=</span> <span class="n">40</span><span class="k2">)</span>
<span class="number"> 259</span>            <span class="k2">{</span>
<span class="number"> 260</span>                x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 261</span>                <span class="k3">+</span><span class="k3">+</span>y<span class="k2">;</span>
<span class="number"> 262</span>            <span class="k2">}</span>
<span class="number"> 263</span>        <span class="k2">}</span>
<span class="number"> 264</span>    <span class="k2">}</span>
<span class="number"> 265</span>    Map.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 266</span><span class="k2">}</span>
<span class="number"> 267</span>
<span class="number"> 268</span><span class="k1">void</span> updateBitTile<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles, <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display<span class="k2">)</span>
<span class="number"> 269</span><span class="k2">{</span> <span class="c">//creates a bitmap from tiles instead of drawing all tiles seperately, fucking awesome ryte?</span>
<span class="number"> 270</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>BitTile<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 271</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>x<span class="k2">)</span>
<span class="number"> 272</span>    <span class="k2">{</span>
<span class="number"> 273</span>        <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>y<span class="k2">)</span>
<span class="number"> 274</span>        <span class="k2">{</span>
<span class="number"> 275</span>            <span class="k1">switch</span> <span class="k2">(</span>Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 276</span>            <span class="k2">{</span>
<span class="number"> 277</span>                <span class="k1">case</span> <span class="n">0</span><span class="k2">:</span>
<span class="number"> 278</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>tiles, <span class="n">0</span>, <span class="n">0</span>, <span class="n">32</span>, <span class="n">32</span>, x<span class="k3">*</span><span class="n">32</span>, y<span class="k3">*</span><span class="n">32</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 279</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 280</span>                <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number"> 281</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>tiles, <span class="n">32</span>, <span class="n">0</span>, <span class="n">32</span>, <span class="n">32</span>, x<span class="k3">*</span><span class="n">32</span>, y<span class="k3">*</span><span class="n">32</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 282</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 283</span>            <span class="k2">}</span> 
<span class="number"> 284</span>           <span class="c">/* al_draw_bitmap_region(tiles, Tiles[x][y]*32, 0, 32, 32, x*32, y*32, NULL);*/</span>
<span class="number"> 285</span>        <span class="k2">}</span>
<span class="number"> 286</span>    <span class="k2">}</span>
<span class="number"> 287</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 288</span>    
<span class="number"> 289</span>   <span class="c">// al_save_bitmap("Screenshot.png", BitTile);</span>
<span class="number"> 290</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Tue, 30 Oct 2012 03:39:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/611343/969141#target">Angeljruiz</a> said:</div><div class="quote"><p>@Kris - how did you load/display your tiles?</p></div></div><p>

Loading&#39;s easy. Just have them all together on a single bitmap and load it in, then create sub-bitmaps off of it for sake of simplicity for each kind of tile.</p><p>The maps themselves are procedurally generated at present, though eventually I have to incorporate saving and loading of them since a single run through my game will take several hours.</p><p>But as for displaying them, I took a page out of the book of the NES. Older game consoles don&#39;t have the power to constantly refresh the tiles on-screen, nor the memory to store an active bitmap of an entire map/level, but because these older systems were specifically designed around a tile/sprite concept, they have a tile page (sometimes referred to as the &quot;name page&quot;) where a series of tiles can be stored and this page can be drawn to the screen from any spot, wrapping around at its edges. This way, only tiles that have freshly come on screen need to actually be updated, and the rest are simply there already from previous drawing operations.</p><p>This is essentially the same approach I&#39;ve taken. I have a tile page which is essentially a 4096x4096 texture (largest safe size, takes up 64 MB of video RAM) that wraps around and only has tiles written to it when they change or come into view. At present, the only way to pull this off with Allegro is using the primitives add-on, as textures will not wrap with the standard bitmap functions. To know how many rows/columns to draw, I track positional data relative to the edges of a camera frame and as this frame moves, the system tracks how many new rows and columns worth of tiles to draw. I can also request the system to redraw the entire tile page, which is necessary when first booting in or if the camera needs to jump to a new spot immediately.</p><p>This is definitely the hardest way to do it, but offers the best performance possible. With very small tile sizes like I&#39;m using, this method is a must to avoid the overhead of thousands of tile drawing calls per frame. With typical tile sizes though, it doesn&#39;t make a huge difference on modern hardware.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Tue, 30 Oct 2012 03:59:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ohh thats really cool, ill have to check that out. Could you give some sample code?</p><p>As for EnClave it seems like you never actually draw the tiles, just the character<br />Just draw the BitTiles bitmap as you would normally with its x and y positions as 0 minus the offset values (OffsetX and OffsetY in my code)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Tue, 30 Oct 2012 06:21:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Its wierd tho Angel even if i copy your code straight off, if i save the Tiles, and Knight png to my project folder, if i create a cPlayer class in Header file and check that no errors accure when i debug the program i get ERROR R6010 Abort, and i cant do anything with it, thats what is very wierd...I know im being a Pain in the <span class="cuss"><span>ass</span></span> right now but i seriously cant figure it out... been trying to fix the Tilemaps 3 different ways now i either get nothing or Error R6010... i dont get it <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Tue, 30 Oct 2012 06:26:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Alright try this
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="c">//main.cpp</span>
<span class="number">   2</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;fstream&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">   7</span><span class="p">#include "cPlayer.h"</span>
<span class="number">   8</span>
<span class="number">   9</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  10</span>
<span class="number">  11</span><span class="k1">int</span> loadmap<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  12</span><span class="k1">void</span> updateBitTile<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles, <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  13</span><span class="k1">bool</span> Collision<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> x, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  14</span>
<span class="number">  15</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span>
<span class="number">  16</span><span class="k2">{</span>
<span class="number">  17</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">  18</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  19</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">  20</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> player <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  21</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  22</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  23</span>    
<span class="number">  24</span>    <a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</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">  26</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">  27</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">  28</span>    
<span class="number">  29</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>    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">  31</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> <span class="n">120</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>    player <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Player.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>player<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  34</span>        cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Bad Player.png\n"</span><span class="k2">;</span>
<span class="number">  35</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  36</span>    <span class="k2">}</span>
<span class="number">  37</span>    tiles <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Tiles.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>tiles<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  39</span>        cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Bad Tiles.png\n"</span><span class="k2">;</span>
<span class="number">  40</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  41</span>    <span class="k2">}</span>
<span class="number">  42</span>    BitTile <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_bitmap"><span class="a">al_create_bitmap</span></a><span class="k2">(</span><span class="n">1280</span>, <span class="n">960</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span>
<span class="number">  44</span>    
<span class="number">  45</span>    <span class="k1">bool</span> Exit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  46</span>    <span class="k1">bool</span> Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  47</span>    <span class="k1">bool</span> KeyDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  48</span>    
<span class="number">  49</span>    <span class="k1">bool</span> kLeft <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  50</span>    <span class="k1">bool</span> kRight <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  51</span>    <span class="k1">bool</span> kUp <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  52</span>    <span class="k1">bool</span> kDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  53</span>    
<span class="number">  54</span>    
<span class="number">  55</span>    
<span class="number">  56</span>    <span class="k1">int</span> Counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  57</span>    
<span class="number">  58</span>    <span class="k1">int</span> OffsetX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  59</span>    <span class="k1">int</span> OffsetY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  60</span>    
<span class="number">  61</span>    <span class="k1">int</span> Tiles<span class="k2">[</span><span class="n">40</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  62</span>    
<span class="number">  63</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>x<span class="k2">)</span>
<span class="number">  64</span>    <span class="k2">{</span>
<span class="number">  65</span>        <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>y<span class="k2">)</span>
<span class="number">  66</span>        <span class="k2">{</span>
<span class="number">  67</span>            Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  68</span>        <span class="k2">}</span>
<span class="number">  69</span>    <span class="k2">}</span>
<span class="number">  70</span>    
<span class="number">  71</span>    <span class="k1">if</span> <span class="k2">(</span>loadmap<span class="k2">(</span>Tiles<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">)</span>
<span class="number">  72</span>    <span class="k2">{</span>
<span class="number">  73</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  74</span>    <span class="k2">}</span>
<span class="number">  75</span>    updateBitTile<span class="k2">(</span>Tiles, BitTile, tiles, display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>    
<span class="number">  77</span>    cPlayer Player<span class="k2">(</span><span class="n">640</span><span class="k3">/</span><span class="n">2</span><span class="k3">-</span><span class="n">16</span>, <span class="n">480</span><span class="k3">/</span><span class="n">2</span><span class="k3">-</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  78</span>    
<span class="number">  79</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>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">  80</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>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">  81</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>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">  82</span>    
<span class="number">  83</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">  84</span>    
<span class="number">  85</span>    <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>Exit<span class="k2">)</span>
<span class="number">  86</span>    <span class="k2">{</span>
<span class="number">  87</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">  88</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>queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>        
<span class="number">  90</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">  91</span>        <span class="k2">{</span>
<span class="number">  92</span>            <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number">  93</span>            <span class="k2">{</span>
<span class="number">  94</span>                <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number">  95</span>                    Exit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  96</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number">  97</span>                <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number">  98</span>                    Player.SetDir<span class="k2">(</span>LEFT<span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>                    KeyDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 100</span>                    kLeft <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 101</span>                    Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 102</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 103</span>                <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 104</span>                    Player.SetDir<span class="k2">(</span>RIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 105</span>                    KeyDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 106</span>                    kRight <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 107</span>                    Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 108</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 109</span>                <span class="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 110</span>                    Player.SetDir<span class="k2">(</span>UP<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>                    KeyDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 112</span>                    kUp <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 113</span>                    Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 114</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 115</span>                <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 116</span>                    Player.SetDir<span class="k2">(</span>DOWN<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>                    KeyDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 118</span>                    kDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 119</span>                    Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 120</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 121</span>            <span class="k2">}</span>
<span class="number"> 122</span>        <span class="k2">}</span>
<span class="number"> 123</span>        
<span class="number"> 124</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"> 125</span>        <span class="k2">{</span>
<span class="number"> 126</span>            <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 127</span>            <span class="k2">{</span>
<span class="number"> 128</span>                <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 129</span>                    kLeft <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 130</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 131</span>                <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 132</span>                    kRight <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 133</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 134</span>                <span class="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 135</span>                    kUp <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 136</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 137</span>                <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 138</span>                    kDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 139</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 140</span>            <span class="k2">}</span>
<span class="number"> 141</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>kRight <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>kUp <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>kDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>kLeft<span class="k2">)</span>
<span class="number"> 142</span>                KeyDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 143</span>        <span class="k2">}</span>
<span class="number"> 144</span>        
<span class="number"> 145</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"> 146</span>        <span class="k2">{</span>
<span class="number"> 147</span>            <span class="k1">switch</span> <span class="k2">(</span>Player.GetDir<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 148</span>            <span class="k2">{</span>
<span class="number"> 149</span>                <span class="k1">case</span> LEFT:
<span class="number"> 150</span>                    <span class="k1">if</span> <span class="k2">(</span>KeyDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 151</span>                        <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">31</span> <span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k2">)</span>
<span class="number"> 152</span>                    <span class="k2">{</span>
<span class="number"> 153</span>                        Player.Move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 154</span>                        <span class="k3">+</span><span class="k3">+</span>Counter<span class="k2">;</span>
<span class="number"> 155</span>                        <span class="k3">-</span><span class="k3">-</span>OffsetX<span class="k2">;</span>
<span class="number"> 156</span>                        Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 157</span>                    <span class="k2">}</span>
<span class="number"> 158</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 159</span>                <span class="k1">case</span> RIGHT:
<span class="number"> 160</span>                    <span class="k1">if</span> <span class="k2">(</span>KeyDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">32</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 161</span>                        <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">32</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">31</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k2">)</span>
<span class="number"> 162</span>                    <span class="k2">{</span>
<span class="number"> 163</span>                        Player.Move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 164</span>                        <span class="k3">+</span><span class="k3">+</span>Counter<span class="k2">;</span>
<span class="number"> 165</span>                        <span class="k3">+</span><span class="k3">+</span>OffsetX<span class="k2">;</span>
<span class="number"> 166</span>                        Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 167</span>                    <span class="k2">}</span>
<span class="number"> 168</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 169</span>                <span class="k1">case</span> UP:
<span class="number"> 170</span>                    <span class="k1">if</span> <span class="k2">(</span>KeyDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 171</span>                        <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">31</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="k3">-</span><span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k2">)</span>
<span class="number"> 172</span>                    <span class="k2">{</span>
<span class="number"> 173</span>                        Player.Move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 174</span>                        <span class="k3">+</span><span class="k3">+</span>Counter<span class="k2">;</span>
<span class="number"> 175</span>                        <span class="k3">-</span><span class="k3">-</span>OffsetY<span class="k2">;</span>
<span class="number"> 176</span>                        Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 177</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> DOWN:
<span class="number"> 180</span>                    <span class="k1">if</span> <span class="k2">(</span>KeyDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">32</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 181</span>                        <span class="k3">!</span>Collision<span class="k2">(</span>Tiles, <span class="k2">(</span>Player.GetX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">31</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span>, <span class="k2">(</span>Player.GetY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">32</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">32</span> <span class="k2">)</span> <span class="k2">)</span>
<span class="number"> 182</span>                    <span class="k2">{</span>
<span class="number"> 183</span>                        Player.Move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 184</span>                        <span class="k3">+</span><span class="k3">+</span>Counter<span class="k2">;</span>
<span class="number"> 185</span>                        <span class="k3">+</span><span class="k3">+</span>OffsetY<span class="k2">;</span>
<span class="number"> 186</span>                        Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 187</span>                    <span class="k2">}</span>
<span class="number"> 188</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 189</span>            <span class="k2">}</span>
<span class="number"> 190</span>            <span class="k1">if</span> <span class="k2">(</span>Counter <span class="k3">=</span><span class="k3">=</span> <span class="n">30</span><span class="k2">)</span>
<span class="number"> 191</span>            <span class="k2">{</span>
<span class="number"> 192</span>                Player.Tick<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 193</span>                Redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 194</span>                Counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 195</span>            <span class="k2">}</span>
<span class="number"> 196</span>            
<span class="number"> 197</span>        <span class="k2">}</span>
<span class="number"> 198</span>        
<span class="number"> 199</span>        <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>queue<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> Redraw<span class="k2">)</span>
<span class="number"> 200</span>        <span class="k2">{</span>
<span class="number"> 201</span>            <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">250</span>, <span class="n">250</span>, <span class="n">250</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 202</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>BitTile, <span class="n">0</span><span class="k3">-</span>OffsetX, <span class="n">0</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 203</span>            <span class="k1">switch</span> <span class="k2">(</span>Player.GetDir<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span> <span class="c">//These switch statements are for Player.png</span>
<span class="number"> 204</span>                <span class="k1">case</span> LEFT:
<span class="number"> 205</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, Player.GetFrame<span class="k2">(</span><span class="k2">)</span> ? <span class="n">32</span> <span class="k2">:</span> <span class="n">0</span>, <span class="n">64</span>, <span class="n">32</span>, <span class="n">32</span>, Player.GetX<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetX, Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 206</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 207</span>                    
<span class="number"> 208</span>                <span class="k1">case</span> RIGHT:
<span class="number"> 209</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, Player.GetFrame<span class="k2">(</span><span class="k2">)</span> ? <span class="n">32</span> <span class="k2">:</span> <span class="n">0</span>, <span class="n">96</span>, <span class="n">32</span>, <span class="n">32</span>, Player.GetX<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetX, Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 210</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 211</span>                
<span class="number"> 212</span>                <span class="k1">case</span> UP:
<span class="number"> 213</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, Player.GetFrame<span class="k2">(</span><span class="k2">)</span> ? <span class="n">32</span> <span class="k2">:</span> <span class="n">0</span>, <span class="n">32</span>, <span class="n">32</span>, <span class="n">32</span>, Player.GetX<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetX, Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</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="number"> 216</span>                <span class="k1">case</span> DOWN:
<span class="number"> 217</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, Player.GetFrame<span class="k2">(</span><span class="k2">)</span> ? <span class="n">32</span> <span class="k2">:</span> <span class="n">0</span>, <span class="n">0</span>, <span class="n">32</span>, <span class="n">32</span>, Player.GetX<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetX, Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 218</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 219</span>                    
<span class="number"> 220</span>            <span class="k2">}</span>
<span class="number"> 221</span><span class="c">//            switch (Player.GetDir()) { //these switch statements are for Knight.png</span>
<span class="number"> 222</span><span class="c">//                case LEFT:</span>
<span class="number"> 223</span><span class="c">//                    al_draw_bitmap_region(player, Player.GetFrame() ? 20 : 13 , 64, 20, 32, Player.GetX()-OffsetX, Player.GetY()-OffsetY, NULL);</span>
<span class="number"> 224</span><span class="c">//                    break;</span>
<span class="number"> 225</span><span class="c">//                    </span>
<span class="number"> 226</span><span class="c">//                case RIGHT:</span>
<span class="number"> 227</span><span class="c">//                    al_draw_bitmap_region(player, Player.GetFrame() ? 32 : 0, 96, 32, 32, Player.GetX()-OffsetX, Player.GetY()-OffsetY, NULL);</span>
<span class="number"> 228</span><span class="c">//                    break;</span>
<span class="number"> 229</span><span class="c">//                    </span>
<span class="number"> 230</span><span class="c">//                case UP:</span>
<span class="number"> 231</span><span class="c">//                    al_draw_bitmap_region(player, Player.GetFrame() ? 32 : 0, 32, 32, 32, Player.GetX()-OffsetX, Player.GetY()-OffsetY, NULL);</span>
<span class="number"> 232</span><span class="c">//                    break;</span>
<span class="number"> 233</span><span class="c">//                    </span>
<span class="number"> 234</span><span class="c">//                case DOWN:</span>
<span class="number"> 235</span><span class="c">//                    al_draw_bitmap_region(player, Player.GetFrame() ? 62 : 14, 8, 20, 32, Player.GetX()-OffsetX, Player.GetY()-OffsetY, NULL);</span>
<span class="number"> 236</span><span class="c">//                    break;</span>
<span class="number"> 237</span><span class="c">//                    </span>
<span class="number"> 238</span><span class="c">//            }</span>
<span class="number"> 239</span>
<span class="number"> 240</span>            <a href="http://www.allegro.cc/manual/al_draw_pixel"><span class="a">al_draw_pixel</span></a><span class="k2">(</span><span class="k2">(</span><span class="n">304</span><span class="k3">-</span>Player.GetX<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k3">/</span><span class="n">32</span>, <span class="k2">(</span><span class="n">224</span><span class="k3">-</span>Player.GetY<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k3">/</span><span class="n">32</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">250</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 241</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"> 242</span>            Redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 243</span>        <span class="k2">}</span>
<span class="number"> 244</span>    <span class="k2">}</span>
<span class="number"> 245</span>    
<span class="number"> 246</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"> 247</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"> 248</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>queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 249</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 250</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>tiles<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 251</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>BitTile<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 252</span>    
<span class="number"> 253</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 254</span><span class="k2">}</span>
<span class="number"> 255</span><span class="k1">int</span> loadmap<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">)</span>
<span class="number"> 256</span><span class="k2">{</span>
<span class="number"> 257</span>    <span class="k1">int</span> x<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>, y<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 258</span>    <span class="k1">int</span> temp<span class="k2">;</span>
<span class="number"> 259</span>    ifstream Map<span class="k2">(</span><span class="s">"Map1.txt"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 260</span>    <span class="k1">if</span> <span class="k2">(</span>Map.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 261</span>    <span class="k2">{</span>
<span class="number"> 262</span>        <span class="k1">while</span><span class="k2">(</span>Map <span class="k3">&gt;</span><span class="k3">&gt;</span> temp<span class="k2">)</span>
<span class="number"> 263</span>        <span class="k2">{</span>
<span class="number"> 264</span>            Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> temp<span class="k2">;</span>
<span class="number"> 265</span>            <span class="k3">+</span><span class="k3">+</span>x<span class="k2">;</span>
<span class="number"> 266</span>            <span class="k1">if</span> <span class="k2">(</span>x <span class="k3">=</span><span class="k3">=</span> <span class="n">40</span><span class="k2">)</span>
<span class="number"> 267</span>            <span class="k2">{</span>
<span class="number"> 268</span>                x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 269</span>                <span class="k3">+</span><span class="k3">+</span>y<span class="k2">;</span>
<span class="number"> 270</span>            <span class="k2">}</span>
<span class="number"> 271</span>        <span class="k2">}</span>
<span class="number"> 272</span>    <span class="k2">}</span> <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 273</span>        cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Bad Map1.txt\n"</span><span class="k2">;</span>
<span class="number"> 274</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 275</span>    <span class="k2">}</span>
<span class="number"> 276</span>    Map.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 277</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 278</span><span class="k2">}</span>
<span class="number"> 279</span><span class="k1">void</span> updateBitTile<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles, <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display<span class="k2">)</span>
<span class="number"> 280</span><span class="k2">{</span> <span class="c">//creates a bitmap from tiles instead of drawing all tiles seperately, fucking awesome ryte?</span>
<span class="number"> 281</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>BitTile<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 282</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>x<span class="k2">)</span>
<span class="number"> 283</span>    <span class="k2">{</span>
<span class="number"> 284</span>        <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>y<span class="k2">)</span>
<span class="number"> 285</span>        <span class="k2">{</span>
<span class="number"> 286</span>            <span class="c">/*switch (Tiles[x][y])</span>
<span class="number"> 287</span><span class="c">            {</span>
<span class="number"> 288</span><span class="c">                case 0:</span>
<span class="number"> 289</span><span class="c">                    al_draw_bitmap_region(tiles, 0, 0, 32, 32, x*32, y*32, NULL);</span>
<span class="number"> 290</span><span class="c">                    break;</span>
<span class="number"> 291</span><span class="c">                case 1:</span>
<span class="number"> 292</span><span class="c">                    al_draw_bitmap_region(tiles, 32, 0, 32, 32, x*32, y*32, NULL);</span>
<span class="number"> 293</span><span class="c">                    break;</span>
<span class="number"> 294</span><span class="c">            } */</span>
<span class="number"> 295</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>tiles, Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k3">*</span><span class="n">32</span>, <span class="n">0</span>, <span class="n">32</span>, <span class="n">32</span>, x<span class="k3">*</span><span class="n">32</span>, y<span class="k3">*</span><span class="n">32</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 296</span>        <span class="k2">}</span>
<span class="number"> 297</span>    <span class="k2">}</span>
<span class="number"> 298</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 299</span>    
<span class="number"> 300</span>   <span class="c">// al_save_bitmap("Screenshot.png", BitTile);</span>
<span class="number"> 301</span><span class="k2">}</span>
<span class="number"> 302</span><span class="k1">bool</span> Collision<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> x, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> y<span class="k2">)</span>
<span class="number"> 303</span><span class="k2">{</span>
<span class="number"> 304</span>    <span class="k1">if</span> <span class="k2">(</span>Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 305</span>        <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 306</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 307</span><span class="k2">}</span>
</div></div><p>
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">//</span>
<span class="number">  2</span><span class="c">//  cPlayer.h</span>
<span class="number">  3</span><span class="c">//  Allegro</span>
<span class="number">  4</span><span class="c">//</span>
<span class="number">  5</span><span class="c">//  Created by Angel Bates on 10/27/12.</span>
<span class="number">  6</span><span class="c">//  Copyright (c) 2012 Angel Bates. All rights reserved.</span>
<span class="number">  7</span><span class="c">//</span>
<span class="number">  8</span>
<span class="number">  9</span><span class="p">#ifndef Allegro_cPlayer_h</span>
<span class="number"> 10</span><span class="p">#define Allegro_cPlayer_h</span>
<span class="number"> 11</span>
<span class="number"> 12</span><span class="k1">enum</span> Directions <span class="k2">{</span> LEFT, RIGHT, UP, DOWN <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span>
<span class="number"> 15</span><span class="k1">class</span> cPlayer <span class="k2">{</span>
<span class="number"> 16</span>public:
<span class="number"> 17</span>    cPlayer<span class="k2">(</span><span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> i_X, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> i_Y<span class="k2">)</span><span class="k2">:</span>m_X<span class="k2">(</span>i_X<span class="k2">)</span>, m_Y<span class="k2">(</span>i_Y<span class="k2">)</span>, m_SmallFrame<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>, m_Dir<span class="k2">(</span>LEFT<span class="k2">)</span> <span class="k2">{</span> <span class="k2">}</span>
<span class="number"> 18</span>    
<span class="number"> 19</span>    <span class="k1">void</span> Tick<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k2">(</span>m_SmallFrame <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span> ? m_SmallFrame <span class="k3">=</span> <span class="n">0</span> <span class="k2">:</span> m_SmallFrame <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 20</span>    
<span class="number"> 21</span>    <span class="k1">int</span> GetFrame<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k1">return</span> m_SmallFrame<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 22</span>    
<span class="number"> 23</span>    <span class="k1">int</span> GetX<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k1">return</span> m_X<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 24</span>    <span class="k1">int</span> GetY<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k1">return</span> m_Y<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 25</span>    
<span class="number"> 26</span>    <span class="k1">void</span> SetCords<span class="k2">(</span><span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> i_X, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> i_Y<span class="k2">)</span> <span class="k2">{</span> m_X <span class="k3">=</span> i_X<span class="k2">;</span> m_Y <span class="k3">=</span> i_Y<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 27</span>    
<span class="number"> 28</span>    <span class="k1">void</span> Move<span class="k2">(</span><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>m_Dir<span class="k2">)</span>
<span class="number"> 31</span>        <span class="k2">{</span>
<span class="number"> 32</span>            <span class="k1">case</span> LEFT:
<span class="number"> 33</span>                <span class="k3">-</span><span class="k3">-</span>m_X<span class="k2">;</span>
<span class="number"> 34</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 35</span>            <span class="k1">case</span> RIGHT:
<span class="number"> 36</span>                <span class="k3">+</span><span class="k3">+</span>m_X<span class="k2">;</span>
<span class="number"> 37</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 38</span>            <span class="k1">case</span> UP:
<span class="number"> 39</span>                <span class="k3">-</span><span class="k3">-</span>m_Y<span class="k2">;</span>
<span class="number"> 40</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 41</span>            <span class="k1">case</span> DOWN:
<span class="number"> 42</span>                <span class="k3">+</span><span class="k3">+</span>m_Y<span class="k2">;</span>
<span class="number"> 43</span>                <span class="k1">break</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="number"> 47</span>    Directions GetDir<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k1">return</span> m_Dir<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 48</span>    
<span class="number"> 49</span>    <span class="k1">void</span> SetDir<span class="k2">(</span><span class="k1">const</span> Directions<span class="k3">&amp;</span> i_Dir<span class="k2">)</span> <span class="k2">{</span> m_Dir <span class="k3">=</span> i_Dir<span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 50</span>    
<span class="number"> 51</span>    
<span class="number"> 52</span>    
<span class="number"> 53</span>private:
<span class="number"> 54</span>    <span class="k1">int</span> m_X, m_Y<span class="k2">;</span>
<span class="number"> 55</span>    <span class="k1">int</span> m_SmallFrame<span class="k2">;</span>
<span class="number"> 56</span>    Directions m_Dir<span class="k2">;</span>
<span class="number"> 57</span>    
<span class="number"> 58</span>    
<span class="number"> 59</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 60</span>
<span class="number"> 61</span>
<span class="number"> 62</span><span class="p">#endif</span>
</div></div><p>
This code checks for bad sprites, which is something i shoulda done in the the first place, and the collision is better now.<br />Just make sure that the sprites are in the same directory as the executable, just because its in the project folder doesnt mean its going to put it in right directory. Like in xcode you have to specifically tell it to copy the sprites to the executable folder. Hopefully this works X)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Tue, 30 Oct 2012 06:45:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Angel....You are my HERO! thank you for being so PATIENT with me, it FINNALY worked... it was such a stupid mistake that its to embarassing to tell <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=";D" border="0" />... Anyway Thank you.</p><p><img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /><img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /><img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Tue, 30 Oct 2012 06:55:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Haha no problem <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Tue, 30 Oct 2012 06:57:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/611343/969204#target">Angeljruiz</a> said:</div><div class="quote"><p>Ohh thats really cool, ill have to check that out. Could you give some sample code?</p></div></div><p>
Nope! <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p><p>The big reason why I can&#39;t really is because the system is specifically tailored for the game I&#39;m making. In order for the code to make sense, I would have to provide you with the entire rendering, mapping, and tile processing source code, which is not going to happen. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>It also still has some minor bugs which I&#39;m going to be addressing as development of my game continues. Also, because it&#39;s inteded to be a commercial indie title, I don&#39;t want to share routines that took an extreme amount of effort to code. At least, not until the game&#39;s out. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>What I can say though is that the key to making it work is creating a large texture for your tile page and treat camera positions on it with modulo values. (IE: For a 4096x4096 texture, your camera&#39;s XY coordinates on it would have fmod(coord,4096.0f) applied.) Then just use Allegro&#39;s primitives add-on to draw from the texture WITHOUT applying fmod to your source coordinates so that the texture wraps around its edges when drawing it to the screen.</p><p>If you only use the primitive functions to draw to the texture you can avoid having to fmod anything, but Allegro&#39;s bitmap drawing functions are far-better optimized for drawing lots of things at once, whereas with the primitives add-on you have to queue up all of your drawing ops into an array before you make them. (Though you can draw a ton more stuff per frame this way if you feel up to the challenge.)</p><p>It&#39;s a lot more complicated than that though and again, unless you&#39;re working with tile sizes so small that you have to draw over a thousand or two per frame, the performance boost is not worth the effort. Since I have to render 15,000 tiles per frame... yeah... <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Tue, 30 Oct 2012 11:58:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Kris or Angel or anyone?, i have a question, when i draw tiles from my TXT document it follows the 0 1 2 3 4 5 6 depending on my PNG file, the first 64x64 is grass so its = 0, then the other is a stone tile, then it automaticly = 1  because they are like that in the Tilesheet, but it only reads horizontal and now ive runned out of tiles in my png file because it only reads horizontal, i got 17 tiles right now each is 64x64, is there anyway to read the tiles that are under it so for an example:</p><p>The numbers represent a Tile in the PNG file.</p><p>1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [STOP at the PNG file]<br />18 19 20 21 22 23 24 25 26 27 28 29 30 31 [is there anyway to continue like this?]</p><p>Thanks in advance, </p><p>EnClave
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Tue, 30 Oct 2012 13:29:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>  _tile_sheet <span class="k3">=</span> VZ_LoadBitmap<span class="k2">(</span><span class="s">"Textures"</span>,<span class="s">"vz_tiles_1.png"</span>,ALLEGRO_VIDEO_BITMAP<span class="k3">|</span>ALLEGRO_MIN_LINEAR<span class="k3">|</span>ALLEGRO_MAG_LINEAR<span class="k3">|</span>ALLEGRO_NO_PREMULTIPLIED_ALPHA<span class="k2">)</span><span class="k2">;</span>
  <span class="k1">if</span> <span class="k2">(</span>_tile_sheet <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span> FatalErrorMsg<span class="k2">(</span><span class="n">8</span>,display<span class="k2">)</span><span class="k2">;</span>
  <span class="k1">for</span> <span class="k2">(</span>z <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> z <span class="k3">&lt;</span> VZ_MAX_FRAMES<span class="k2">;</span> z<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
    <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>tile_bmp<span class="k2">[</span>z<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_sub_bitmap"><span class="a">al_create_sub_bitmap</span></a><span class="k2">(</span>_tile_sheet,<span class="k2">(</span>z%<span class="n">51</span><span class="k2">)</span><span class="k3">*</span><span class="n">20</span><span class="k3">+</span><span class="n">2</span>,<span class="k2">(</span>z<span class="k3">/</span><span class="n">51</span><span class="k2">)</span><span class="k3">*</span><span class="n">20</span><span class="k3">+</span><span class="n">2</span>,<span class="n">16</span>,<span class="n">16</span><span class="k2">)</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span> FatalErrorMsg<span class="k2">(</span><span class="n">9</span>,display<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
This is my tile loading code. Typically, you want to modulo one coordinate by the number of tiles per col/row, and divide the other. In my case, each column goes up by 1 and each row by 51, so I modulo the X by 51 and divide the Y by 51, then just multiply each by the space between each tile. <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" /></p><p>I also extend my tiles by 2 pixels in both directions since I have to be prepared to scale them. In fact, this a good practice to do with ALL 2D graphics using hardware acceleration that need to be joined together out of pieces, like status bars and whatnot.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Tue, 30 Oct 2012 18:56:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Kris, I see you use things like <span class="source-code">FatalErrorMsg<span class="k2">(</span><span class="n">8</span>,display<span class="k2">)</span><span class="k2">;</span></span> apparently with 8 or 9 to get information about the point where the problem was raised.<br />In case you don&#39;t know, compilers provide macros like <u>_FILE</u>_ and <u>_LINE</u>_ that expand into source filename and line number.<br />This allows writing macros like
</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#define FATAL_ERR Error_handler(__FILE__, __LINE__)</span>
</pre></div></div><p>
Then you can use the macro any number of time, each occurence will pass a different filename + line number.</p><p>Edit: GCC additionally provides <u>_func</u>_ which is the function&#39;s name.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Audric)</author>
		<pubDate>Tue, 30 Oct 2012 19:46:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thats understandable kris :p Thanks for introducing me to a interesting concept tho <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p><p>@Enclave what do you mean?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Tue, 30 Oct 2012 21:23:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/611343/969248#target">Audric</a> said:</div><div class="quote"><p>In case you don&#39;t know, compilers provide macros like <u>FILE</u> and <u>LINE</u> that expand into source filename and line number.</p></div></div><p>
Didn&#39;t know that... but it wouldn&#39;t really help me much anyways since I can actually use the MSVC10 debugger with A5 projects and the FatalErrorMsg() routine I developed is intended for end-users to know what went wrong if something does go wrong in the completed product. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>My only problem at the moment is that the popups produced by the FatalErrorMsg() routine are appearing BEHIND the Allegro window, and when I try to shut the program down with an exit() call it&#39;s turning Allegro off before calling my additional uninitialization routines, which crashes the program. Meh, I&#39;ll figure out how to make that all work soon enough, it&#39;s not a high priority right now. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Tue, 30 Oct 2012 21:50:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why don&#39;t use allegro native dialogs? They work fine. Unless there&#39;s a crash already happened, of course.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Raidho36)</author>
		<pubDate>Tue, 30 Oct 2012 21:56:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/611343/969256#target">Raidho36</a> said:</div><div class="quote"><p>Why don&#39;t use allegro native dialogs? They work fine. Unless there&#39;s a crash already happened, of course.</p></div></div><p>
I am. <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /></p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> FatalErrorMsg <span class="k2">(</span><span class="k1">int</span> errornum, <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">if</span> <span class="k2">(</span>display <span class="k3">!</span><span class="k3">=</span> NULL<span class="k2">)</span> <a href="http://www.allegro.cc/manual/al_show_mouse_cursor"><span class="a">al_show_mouse_cursor</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>display, <span class="s">"Vectorzone - Fatal Error"</span>, _errormsg<span class="k2">[</span>errornum<span class="k2">]</span>, NULL, NULL, ALLEGRO_MESSAGEBOX_ERROR<span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Tue, 30 Oct 2012 22:27:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>this is my code to load tiles right now, </p><p>BlockSize = 64</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>
<span class="number">  2</span><span class="k1">void</span> LoadMap<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>filename, std::vector<span class="k3">&lt;</span> std::vector <span class="k3">&lt;</span>int&gt; <span class="k3">&gt;</span> <span class="k3">&amp;</span>map<span class="k2">)</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>  std::ifstream openfile<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span> 
<span class="number">  5</span>  <span class="k1">if</span><span class="k2">(</span>openfile.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  6</span>  <span class="k2">{</span>
<span class="number">  7</span>    std::string <a href="http://www.allegro.cc/manual/line"><span class="a">line</span></a>, value<span class="k2">;</span>
<span class="number">  8</span>    <span class="k1">int</span> space<span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span>    <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>openfile.eof<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 11</span>    <span class="k2">{</span>
<span class="number"> 12</span>      std::getline<span class="k2">(</span>openfile, <a href="http://www.allegro.cc/manual/line"><span class="a">line</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span>      <span class="k1">if</span><span class="k2">(</span>line.find<span class="k2">(</span><span class="s">"[TileSet]"</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> std::string::npos<span class="k2">)</span>
<span class="number"> 15</span>      <span class="k2">{</span>
<span class="number"> 16</span>        state <span class="k3">=</span> TileSet<span class="k2">;</span>
<span class="number"> 17</span>        <span class="k1">continue</span><span class="k2">;</span>
<span class="number"> 18</span>      <span class="k2">}</span>
<span class="number"> 19</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>line.find<span class="k2">(</span><span class="s">"[Map]"</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> std::string::npos<span class="k2">)</span>
<span class="number"> 20</span>      <span class="k2">{</span>
<span class="number"> 21</span>        state <span class="k3">=</span> Map<span class="k2">;</span>
<span class="number"> 22</span>        <span class="k1">continue</span><span class="k2">;</span>
<span class="number"> 23</span>      <span class="k2">}</span>
<span class="number"> 24</span>
<span class="number"> 25</span>      <span class="k1">switch</span><span class="k2">(</span>state<span class="k2">)</span>
<span class="number"> 26</span>      <span class="k2">{</span>
<span class="number"> 27</span>      <span class="k1">case</span> TileSet:
<span class="number"> 28</span>      <span class="k1">if</span><span class="k2">(</span>line.length<span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 29</span>      tileSet <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>line.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 31</span>      <span class="k1">case</span> Map: 
<span class="number"> 32</span>      std::stringstream str<span class="k2">(</span><a href="http://www.allegro.cc/manual/line"><span class="a">line</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>      std::vector<span class="k3">&lt;</span>int&gt; tempVector<span class="k2">;</span>
<span class="number"> 34</span>
<span class="number"> 35</span>      <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>str.eof<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 36</span>      <span class="k2">{</span>
<span class="number"> 37</span>        std::getline<span class="k2">(</span>str, value, <span class="s">' '</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>      <span class="k1">if</span><span class="k2">(</span>value.length<span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 39</span>                                   tempVector.push_back<span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_54.html" target="_blank">atoi</a><span class="k2">(</span>value.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>        <span class="k2">}</span>
<span class="number"> 41</span>        map.push_back<span class="k2">(</span>tempVector<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span>        <span class="k1">break</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="k1">else</span>
<span class="number"> 47</span>  <span class="k2">{</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="number"> 51</span>
<span class="number"> 52</span>
<span class="number"> 53</span>           <span class="c">//%%%%%  RITAR UPP TILES %%%%%//</span>
<span class="number"> 54</span>
<span class="number"> 55</span><span class="k1">void</span> DrawMap<span class="k2">(</span>std::vector <span class="k3">&lt;</span>std::vector <span class="k3">&lt;</span>int&gt; <span class="k3">&gt;</span> map<span class="k2">)</span>
<span class="number"> 56</span><span class="k2">{</span>
<span class="number"> 57</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> map.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 58</span>  <span class="k2">{</span>
<span class="number"> 59</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> map<span class="k2">[</span>i<span class="k2">]</span>.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 60</span>    <span class="k2">{</span>
<span class="number"> 61</span><a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>tileSet, map<span class="k2">[</span>i<span class="k2">]</span><span class="k2">[</span>j<span class="k2">]</span> <span class="k3">*</span> BlockSize, <span class="n">0</span>, BlockSize, <span class="n">64</span>, j <span class="k3">*</span> BlockSize,
<span class="number"> 62</span>    i <span class="k3">*</span> BlockSize, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 63</span>    <span class="k2">}</span>
<span class="number"> 64</span>  <span class="k2">}</span>
<span class="number"> 65</span><span class="k2">}</span>
</div></div><p> </p><p>and I&#39;m kind of loading the pngs from the .txt files, like this:<br /> <br />[TileSet]<br />test.png<br />[Map]<br />3 3 3 5 5 5 5 5 5<br />3 3 3 5 5 5 5 5 5<br />4 3 3 5 5 5 5 5 5</p><p>my problem is tho that in my Tilesheet my program can only load tiles horizontal right now my .png file is 1088x64 because it can only load horizontal but now i have runned out of space in the .png file, i want it to be example 1088x128 and the program can load the tiles on the second row aswell. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Wed, 31 Oct 2012 09:15:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well in my code i fix that by keeping the x value and increasing it every time it reads a value and once it gets to the maximum tiles per row or whatever i reset it to 0 then increment the y value. Why dont you just do that ? :p<br />(obviously im not very good at explaining)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Wed, 31 Oct 2012 09:21:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The thing was i couldent implement your &quot;Loading maps code&quot; into my own code and i dont want to like straight copy your code because i dont recognize anything there hehe, hmm i really have water above my head right now, this is extremly complicated i might need to change this code, because i followed some guys tutorial but i dont understand it so well, damn, i just want a nice working Mapload function <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Wed, 31 Oct 2012 09:35:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>But mine is so much simpler than yours, albeit maybe a little bit more cryptic looking X)<br />Heres a deep explaination of my code<br />To keep track of all the tiles i just use a simple 2d array of ints
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> tiles<span class="k2">[</span><span class="n">40</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">;</span>
</pre></div></div><p>
I then open up a file then keep looping until it is the end of the file, keeping track of how many values have been stored, once 40 values (the number of how many tiles per row) has been stored it must mean that its time to increase the y value because all the tiles in that row are filled up.
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">//openfile bla bla bla</span>
<span class="k1">while</span> <span class="k2">(</span>File <span class="k3">&gt;</span><span class="k3">&gt;</span> temp<span class="k2">)</span> <span class="c">//loops until end</span>
<span class="k2">{</span>
  Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> temp<span class="k2">;</span>
  x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span> <span class="c">//next tile in the row</span>
  <span class="k1">if</span> <span class="k2">(</span>x <span class="k3">=</span><span class="k3">=</span> TILES_PER_ROW <span class="c">/*40*/</span><span class="k2">)</span> <span class="c">//all the rows are filled up</span>
  <span class="k2">{</span>
    x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> <span class="c">//reset it</span>
    y<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span> <span class="c">//next column</span>
  <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
Then, as ive already explained, i just make a bitmap out of the tiles then i just draw the bitmap as you would with any other bitmap.<br />Im not saying this is the best way to do this but its definately a good way to start off and get a feel of things.<br />Also i didnt compile this code, its only for example so if there are anything syntax errors thats why
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Wed, 31 Oct 2012 10:58:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah, actully i borrowed your code and implemented in my code, it runs good but now it just creates a bitmap and only using the:</p><p>BitTile = al_create_bitmap(800, 600);</p><p>so it doesent matter what i do in my .txt document it takes like the first tile in my png file and just copys it to 800 x 600, here is a screenshot </p><p><a href="http://i.imgur.com/g7NkN.jpg">http://i.imgur.com/g7NkN.jpg</a></p><p>do you know why it does that?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Wed, 31 Oct 2012 11:49:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Emm im not sure, maybe bad input? I know when you give bad input it just keeps repeating the last good input. Also check the updateBitMap function and make sure its actually drawing the tile that the input corrisponds to.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Angeljruiz)</author>
		<pubDate>Wed, 31 Oct 2012 12:02:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah this is extremly wierd can it have something to do with i changed your [40][30] to [100][100] because i want to make bigger maps?</p><p>anyway with some touching of the code i end up with this, </p><p><a href="http://i.imgur.com/qq0KG.jpg">http://i.imgur.com/qq0KG.jpg</a></p><p>also there is the png file im using and also the update code, hmm
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Wed, 31 Oct 2012 12:18:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>One of the ways I debug a problem like this is to actually do all the logic, step by step, in my head, following along in my code. You can either do this in a forwards motion to determine what the result should be, or a backwards motion to determine what you need to start with to get the result you want.</p><p>However, I just noticed something obvious: You&#39;re only going up by increments of 32 when pulling tile references, not 64 like your tile sizes are. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>I also noticed that tile #0 is a brick wall. Usually it&#39;s best to make tile #0 your empty, undefined tile for sake of if statements. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Wed, 31 Oct 2012 13:53:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I actully havent had any luck on the Working TileMap yet, its still doesent update as it should do, it only creates a wierd big Tile of 800, 600 because its set like that in the BitTile = al_create_bitmap(800, 600);</p><p>Its extremly wierd, i dont know what to do anymore ive been experimenting with my code changed alot of values, switching locations of the updates but still nothing, just does the same thing, if anyone with sharper eyes and knowledge could spot something out i would really appreciate it, been working with this for 2 days now withouth any luck, also when i have Screen scrolling on my Game my Mouse event doesent work either, it works fine if i stay in place in the beginning of the game but when i start to move it doesent update as it should so it just lacks behind all the time, here is my code if anyone have the time to just look over it a quickie! <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span>
<span class="number">   2</span><span class="p">#include&lt;fstream&gt;</span>
<span class="number">   3</span><span class="p">#include&lt;string&gt;</span>
<span class="number">   4</span><span class="p">#include&lt;sstream&gt;</span>
<span class="number">   5</span><span class="p">#include&lt;iostream&gt;</span>
<span class="number">   6</span><span class="p">#include&lt;allegro5\allegro5.h&gt; </span>
<span class="number">   7</span><span class="p">#include&lt;allegro5\allegro_native_dialog.h&gt; </span>
<span class="number">   8</span><span class="p">#include&lt;allegro5\allegro_primitives.h&gt;</span>
<span class="number">   9</span><span class="p">#include&lt;allegro5\allegro_image.h&gt;</span>
<span class="number">  10</span>
<span class="number">  11</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="k1">int</span> loadmap<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  14</span><span class="k1">void</span> updateBitTile<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles, <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span><span class="k1">bool</span> Collision<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> x, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span>
<span class="number">  17</span>
<span class="number">  18</span><span class="p">#define ScreenWidth 1024</span>
<span class="number">  19</span><span class="p">#define ScreenHeight 768</span>
<span class="number">  20</span>
<span class="number">  21</span><span class="k1">int</span> pos_y <span class="k3">=</span> ScreenWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  22</span><span class="k1">int</span> pos_x <span class="k3">=</span> ScreenHeight <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span> 
<span class="number">  23</span>
<span class="number">  24</span>
<span class="number">  25</span><span class="c">// %%%%%  COLLISION OF MOVEMENT HITTING BOX  %%%%%//</span>
<span class="number">  26</span><span class="k1">bool</span> Collision<span class="k2">(</span><span class="k1">float</span> x, <span class="k1">float</span> y, <span class="k1">float</span> ex, <span class="k1">float</span> ey, <span class="k1">int</span> width, <span class="k1">int</span> height<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>x <span class="k3">+</span> width <span class="k3">&lt;</span> ex <span class="k3">|</span><span class="k3">|</span> x <span class="k3">&gt;</span> ex <span class="k3">+</span> width <span class="k3">|</span><span class="k3">|</span> y <span class="k3">+</span> height <span class="k3">&lt;</span> ey <span class="k3">|</span><span class="k3">|</span> y <span class="k3">&gt;</span> ey <span class="k3">+</span> height<span class="k2">)</span>
<span class="number">  29</span>  <span class="k2">{</span>
<span class="number">  30</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  31</span>  <span class="k2">}</span>
<span class="number">  32</span>  <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  33</span><span class="k2">}</span>
<span class="number">  34</span>
<span class="number">  35</span><span class="k1">int</span> state <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  36</span>
<span class="number">  37</span><span class="c">// %%%%%  CAMERA SCROLLING  %%%%%//</span>
<span class="number">  38</span>
<span class="number">  39</span><span class="k1">void</span> cameraUpdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition, <span class="k1">float</span> x, <span class="k1">float</span> y, <span class="k1">int</span> width, <span class="k1">int</span> height<span class="k2">)</span>
<span class="number">  40</span><span class="k2">{</span>
<span class="number">  41</span>  cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>ScreenWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>x <span class="k3">+</span> width <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>  cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>ScreenWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>y <span class="k3">+</span> height <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span>
<span class="number">  44</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  45</span>    cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  46</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  47</span>    cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  48</span>
<span class="number">  49</span><span class="k2">}</span>
<span class="number">  50</span>
<span class="number">  51</span>
<span class="number">  52</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  53</span><span class="k2">{</span>
<span class="number">  54</span>  <span class="c">// %%%%%  IMPORTANT SETTINGS  %%%%%//</span>
<span class="number">  55</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">;</span> 
<span class="number">  56</span>  <span class="k1">const</span> <span class="k1">float</span> FPS <span class="k3">=</span> <span class="n">60</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  57</span>  <span class="k1">const</span> <span class="k1">float</span> frameFPS <span class="k3">=</span> <span class="n">10</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  58</span>  <span class="k1">enum</span> Direction <span class="k2">{</span> DOWN, LEFT, RIGHT, UP <span class="k2">}</span><span class="k2">;</span>
<span class="number">  59</span>
<span class="number">  60</span>  <span class="c">// %%%%%  ERROR CODES, ALLEGRO AND DISPLAY  %%%%%//</span>
<span class="number">  61</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  62</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, <span class="s">"Error"</span>, NULL, <span class="s">"Could not Initialize Allegro"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span> 
<span class="number">  63</span>
<span class="number">  64</span>  display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>ScreenWidth, ScreenHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number">  65</span>
<span class="number">  66</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  67</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, <span class="s">"Error"</span>, NULL, <span class="s">"Could not create Allegro Display"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>
<span class="number">  69</span>
<span class="number">  70</span>  <span class="c">// %%%%%  WINDOW SETTINGS  %%%%%//</span>
<span class="number">  71</span>  
<span class="number">  72</span>  <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>  <a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a><span class="k2">(</span>display, <span class="n">200</span>, <span class="n">200</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>  <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>display, <span class="s">"PRE-alpha Test"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>
<span class="number">  76</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> playerColor <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</span>
<span class="number">  78</span>  <span class="c">// %%%%%  Movement SPEED  %%%%%//</span>
<span class="number">  79</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span>, draw <span class="k3">=</span> <span class="k1">true</span>, active <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  80</span>  <span class="k1">float</span> x <span class="k3">=</span> <span class="n">512</span>, y <span class="k3">=</span> <span class="n">384</span>, moveSpeed <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number">  81</span>  <span class="k1">int</span> dir <span class="k3">=</span> DOWN, sourceX <span class="k3">=</span> <span class="n">64</span>, sourceY <span class="k3">=</span> <span class="n">96</span><span class="k2">;</span>
<span class="number">  82</span>  <span class="k1">float</span> cameraPosition<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> <span class="n">0</span>, <span class="n">0</span> <span class="k2">}</span><span class="k2">;</span>
<span class="number">  83</span>                                        
<span class="number">  84</span>  <span class="c">// %%%%%  ADDONS  %%%%%//</span>
<span class="number">  85</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">  86</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">  87</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">  88</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">  89</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">  90</span>
<span class="number">  91</span>  
<span class="number">  92</span>  <span class="c">// %%%%%  PNGS AND OTHER THINGS TO INSTALL %%%%%//</span>
<span class="number">  93</span>
<span class="number">  94</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  95</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>enemy1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Zanm1.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>player <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"player.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  97</span>  <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>player, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  98</span>  <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>enemy1, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>  
<span class="number"> 100</span>  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"> 101</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> KeyState<span class="k2">;</span>
<span class="number"> 102</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> camera<span class="k2">;</span>
<span class="number"> 103</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 104</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles <span class="k3">=</span> NULL<span class="k2">;</span>   
<span class="number"> 105</span>  
<span class="number"> 106</span>
<span class="number"> 107</span>   tiles <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"test.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>tiles<span class="k2">)</span> 
<span class="number"> 109</span>  <span class="k2">{</span>
<span class="number"> 110</span>        cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Bad Tiles.png\n"</span><span class="k2">;</span>
<span class="number"> 111</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 112</span>    <span class="k2">}</span>
<span class="number"> 113</span>  
<span class="number"> 114</span>  <span class="k1">int</span> Counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>  
<span class="number"> 115</span>    <span class="k1">int</span> OffsetX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 116</span>    <span class="k1">int</span> OffsetY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 117</span>
<span class="number"> 118</span>  <span class="k1">int</span> Tiles<span class="k2">[</span><span class="n">40</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 119</span>    
<span class="number"> 120</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>x<span class="k2">)</span>
<span class="number"> 121</span>    <span class="k2">{</span>
<span class="number"> 122</span>        <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>y<span class="k2">)</span>
<span class="number"> 123</span>        <span class="k2">{</span>
<span class="number"> 124</span>            Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 125</span>        <span class="k2">}</span>
<span class="number"> 126</span>    <span class="k2">}</span>
<span class="number"> 127</span>    
<span class="number"> 128</span>    <span class="k1">if</span> <span class="k2">(</span>loadmap<span class="k2">(</span>Tiles<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">)</span>
<span class="number"> 129</span>    <span class="k2">{</span>
<span class="number"> 130</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 131</span>    <span class="k2">}</span>
<span class="number"> 132</span>  BitTile <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_bitmap"><span class="a">al_create_bitmap</span></a><span class="k2">(</span><span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>
<span class="number"> 134</span>  updateBitTile<span class="k2">(</span>Tiles, BitTile, tiles, display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 135</span>  
<span class="number"> 136</span>    
<span class="number"> 137</span>   
<span class="number"> 138</span>  <span class="c">// %%%%%  EVENTS installation &amp; TIMERS %%%%%//</span>
<span class="number"> 139</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 140</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>frametimer <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> frameFPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 141</span>
<span class="number"> 142</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 143</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"> 144</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"> 145</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>frametimer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 146</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"> 147</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"> 148</span>   
<span class="number"> 149</span>  <span class="c">// %%%%%  TIMER, NO installations UNDER THIS  %%%%%//</span>
<span class="number"> 150</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"> 151</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>frametimer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 152</span>  
<span class="number"> 153</span>  <span class="c">// %%%%%  Beginning of Events %%%%%//  </span>
<span class="number"> 154</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 155</span>  <span class="k2">{</span>
<span class="number"> 156</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> events<span class="k2">;</span> 
<span class="number"> 157</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>events<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 158</span>    <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 159</span>    
<span class="number"> 160</span>   <span class="c">// %%%%%  TILE MAP IN THE EVENT &amp; TIMER CODE %%%%%//</span>
<span class="number"> 161</span>  
<span class="number"> 162</span>    <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 163</span>    <span class="k2">{</span>
<span class="number"> 164</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 165</span>    <span class="k2">}</span>
<span class="number"> 166</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 167</span>    <span class="k2">{</span>
<span class="number"> 168</span>      
<span class="number"> 169</span>    <span class="k2">}</span>
<span class="number"> 170</span>
<span class="number"> 171</span>    <span class="c">// %%%%%  KEYBOARD INPUT AND EVENTS AND PLAYER IMAGE AND CAMERA SCROLLING FOR CHARACTER %%%%%//</span>
<span class="number"> 172</span>    
<span class="number"> 173</span>    <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 174</span>    <span class="k2">{</span>
<span class="number"> 175</span>      <span class="k1">switch</span><span class="k2">(</span>events.keyboard.keycode<span class="k2">)</span>
<span class="number"> 176</span>
<span class="number"> 177</span>      <span class="k2">{</span>
<span class="number"> 178</span>      <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 179</span>        done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 180</span>      <span class="k2">}</span>
<span class="number"> 181</span>    <span class="k2">}</span>
<span class="number"> 182</span>
<span class="number"> 183</span>
<span class="number"> 184</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 185</span>    <span class="k2">{</span>
<span class="number"> 186</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 187</span>    <span class="k2">}</span>
<span class="number"> 188</span>
<span class="number"> 189</span>    <span class="c">// %%%%%  MOUSE  %%%%%//</span>
<span class="number"> 190</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>
<span class="number"> 191</span>
<span class="number"> 192</span>    <span class="k2">{</span>
<span class="number"> 193</span>      <span class="k1">if</span><span class="k2">(</span>events.mouse.button <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 194</span>        draw <span class="k3">=</span> <span class="k3">!</span>draw<span class="k2">;</span>
<span class="number"> 195</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.mouse.button <span class="k3">&amp;</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 196</span>        draw <span class="k3">=</span> <span class="k3">!</span>draw<span class="k2">;</span>
<span class="number"> 197</span>    <span class="k2">}</span>
<span class="number"> 198</span>
<span class="number"> 199</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number"> 200</span>    <span class="k2">{</span>
<span class="number"> 201</span>      pos_x <span class="k3">=</span> events.mouse.x<span class="k2">;</span>
<span class="number"> 202</span>      pos_y <span class="k3">=</span> events.mouse.y<span class="k2">;</span>
<span class="number"> 203</span>    <span class="k2">}</span>
<span class="number"> 204</span>
<span class="number"> 205</span>    <span class="c">// %%%%%  KEYBOARD %%%%%//</span>
<span class="number"> 206</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type <span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 207</span>    <span class="k2">{</span>
<span class="number"> 208</span>      <span class="k1">if</span><span class="k2">(</span>events.timer.source <span class="k3">=</span><span class="k3">=</span> timer<span class="k2">)</span>
<span class="number"> 209</span>      <span class="k2">{</span>
<span class="number"> 210</span>      active <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 211</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_S<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 212</span>      <span class="k2">{</span>
<span class="number"> 213</span>       y <span class="k3">+</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 214</span>       dir <span class="k3">=</span> DOWN<span class="k2">;</span>
<span class="number"> 215</span>      <span class="k2">}</span>
<span class="number"> 216</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_W<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 217</span>      <span class="k2">{</span>
<span class="number"> 218</span>       y <span class="k3">-</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 219</span>       dir <span class="k3">=</span> UP<span class="k2">;</span>
<span class="number"> 220</span>      <span class="k2">}</span>
<span class="number"> 221</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_D<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 222</span>      <span class="k2">{</span>
<span class="number"> 223</span>        x <span class="k3">+</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 224</span>        dir <span class="k3">=</span> RIGHT<span class="k2">;</span>
<span class="number"> 225</span>      <span class="k2">}</span>
<span class="number"> 226</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>KeyState, ALLEGRO_KEY_A<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 227</span>      <span class="k2">{</span>
<span class="number"> 228</span>        x <span class="k3">-</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 229</span>        dir <span class="k3">=</span> LEFT<span class="k2">;</span>
<span class="number"> 230</span>      <span class="k2">}</span>
<span class="number"> 231</span>    
<span class="number"> 232</span>      <span class="k1">else</span>
<span class="number"> 233</span>        active <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 234</span>
<span class="number"> 235</span>      <span class="k1">if</span><span class="k2">(</span>Collision<span class="k2">(</span>x, y, <span class="n">400</span>, <span class="n">400</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 236</span>        <span class="k2">{</span>
<span class="number"> 237</span>          <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 238</span>            y <span class="k3">-</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 239</span>          <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 240</span>            x <span class="k3">+</span><span class="k3">=</span> moveSpeed<span class="k2">;</span> 
<span class="number"> 241</span>          <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 242</span>            x <span class="k3">-</span><span class="k3">=</span> moveSpeed<span class="k2">;</span> 
<span class="number"> 243</span>          <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span>
<span class="number"> 244</span>            y <span class="k3">+</span><span class="k3">=</span> moveSpeed<span class="k2">;</span>
<span class="number"> 245</span>        <span class="k2">}</span>
<span class="number"> 246</span>
<span class="number"> 247</span>      
<span class="number"> 248</span>      cameraUpdate<span class="k2">(</span>cameraPosition, x, y, <span class="n">96</span>, <span class="n">64</span><span class="k2">)</span><span class="k2">;</span>      
<span class="number"> 249</span>      <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 250</span>      <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 251</span>      <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 252</span>      
<span class="number"> 253</span>      <span class="k2">}</span>
<span class="number"> 254</span>
<span class="number"> 255</span>
<span class="number"> 256</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.timer.source <span class="k3">=</span><span class="k3">=</span> frametimer<span class="k2">)</span>
<span class="number"> 257</span>      <span class="k2">{</span>
<span class="number"> 258</span>
<span class="number"> 259</span>      <span class="k1">if</span><span class="k2">(</span>active<span class="k2">)</span>
<span class="number"> 260</span>       sourceX <span class="k3">+</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>player<span class="k2">)</span> <span class="k3">/</span> <span class="n">4</span><span class="k2">;</span>
<span class="number"> 261</span>
<span class="number"> 262</span>      <span class="k1">else</span>
<span class="number"> 263</span>        sourceX <span class="k3">=</span> <span class="n">64</span><span class="k2">;</span>  
<span class="number"> 264</span>
<span class="number"> 265</span>      <span class="k1">if</span><span class="k2">(</span>sourceX <span class="k3">&gt;</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 266</span>        sourceX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 267</span>
<span class="number"> 268</span>      sourceY <span class="k3">=</span> dir<span class="k2">;</span>
<span class="number"> 269</span>      <span class="k2">}</span> 
<span class="number"> 270</span>
<span class="number"> 271</span>        draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 272</span>    <span class="k2">}</span>
<span class="number"> 273</span>
<span class="number"> 274</span>    
<span class="number"> 275</span>    <span class="k1">if</span><span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>queue<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>draw<span class="k2">)</span>
<span class="number"> 276</span>
<span class="number"> 277</span>    <span class="k2">{</span>
<span class="number"> 278</span>    
<span class="number"> 279</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"> 280</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>BitTile, <span class="n">0</span><span class="k3">-</span>OffsetX, <span class="n">0</span><span class="k3">-</span>OffsetY, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 281</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>enemy1, <span class="n">0</span>, <span class="n">0</span>, <span class="n">92</span>, <span class="n">150</span>, <span class="n">400</span>, <span class="n">400</span>, NULL<span class="k2">)</span><span class="k2">;</span>  
<span class="number"> 282</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>player, sourceX, dir <span class="k3">*</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>player<span class="k2">)</span> <span class="k3">/</span> <span class="n">4</span>, <span class="n">64</span>, <span class="n">96</span>, x, y, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 283</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>pos_x, pos_y, pos_x <span class="k3">+</span> <span class="n">30</span>, pos_y <span class="k3">+</span> <span class="n">30</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">150</span>, <span class="n">150</span>, <span class="n">150</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 284</span>    
<span class="number"> 285</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"> 286</span>    <span class="k2">}</span>
<span class="number"> 287</span>
<span class="number"> 288</span>
<span class="number"> 289</span>      
<span class="number"> 290</span>    <span class="c">// %%%%%  GAME UI SHELL  %%%%%//</span>
<span class="number"> 291</span>    <span class="c">/*al_draw_rectangle(1, 1, 800, 100, al_map_rgb(255, 50, 50), 9.0);*/</span>
<span class="number"> 292</span>    
<span class="number"> 293</span>    <span class="c">// %%%%%  Destroy ENDING  %%%%%//</span>
<span class="number"> 294</span>  <span class="k2">}</span>
<span class="number"> 295</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"> 296</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"> 297</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 298</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>enemy1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 299</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"> 300</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>tiles<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 301</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>BitTile<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 302</span>  
<span class="number"> 303</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 304</span><span class="k2">}</span>
<span class="number"> 305</span>
<span class="number"> 306</span><span class="k1">int</span> loadmap<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span><span class="k2">)</span>
<span class="number"> 307</span><span class="k2">{</span>
<span class="number"> 308</span>    <span class="k1">int</span> x<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>, y<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 309</span>    <span class="k1">int</span> temp<span class="k2">;</span>
<span class="number"> 310</span>    ifstream Map<span class="k2">(</span><span class="s">"Map1.txt"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 311</span>    <span class="k1">if</span> <span class="k2">(</span>Map.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 312</span>    <span class="k2">{</span>
<span class="number"> 313</span>        <span class="k1">while</span><span class="k2">(</span>Map <span class="k3">&gt;</span><span class="k3">&gt;</span> temp<span class="k2">)</span>
<span class="number"> 314</span>        <span class="k2">{</span>
<span class="number"> 315</span>            Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> temp<span class="k2">;</span>
<span class="number"> 316</span>            <span class="k3">+</span><span class="k3">+</span>x<span class="k2">;</span>
<span class="number"> 317</span>            <span class="k1">if</span> <span class="k2">(</span>x <span class="k3">=</span><span class="k3">=</span> <span class="n">40</span><span class="k2">)</span>
<span class="number"> 318</span>            <span class="k2">{</span>
<span class="number"> 319</span>                x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 320</span>                <span class="k3">+</span><span class="k3">+</span>y<span class="k2">;</span>
<span class="number"> 321</span>            <span class="k2">}</span>
<span class="number"> 322</span>        <span class="k2">}</span>
<span class="number"> 323</span>    <span class="k2">}</span> <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 324</span>        cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Bad Map1.txt\n"</span><span class="k2">;</span>
<span class="number"> 325</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 326</span>    <span class="k2">}</span>
<span class="number"> 327</span>    Map.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 328</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 329</span><span class="k2">}</span>
<span class="number"> 330</span>
<span class="number"> 331</span><span class="k1">void</span> updateBitTile<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> BitTile, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tiles, <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display<span class="k2">)</span>
<span class="number"> 332</span><span class="k2">{</span> <span class="c">//creates a bitmap from tiles instead of drawing all tiles seperately, fucking awesome ryte?</span>
<span class="number"> 333</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>BitTile<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 334</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>x<span class="k2">)</span>
<span class="number"> 335</span>    <span class="k2">{</span>
<span class="number"> 336</span>        <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>y<span class="k2">)</span>
<span class="number"> 337</span>        <span class="k2">{</span>
<span class="number"> 338</span>            <span class="c">/*switch (Tiles[x][y])</span>
<span class="number"> 339</span><span class="c">            {</span>
<span class="number"> 340</span><span class="c">                case 0:</span>
<span class="number"> 341</span><span class="c">                    al_draw_bitmap_region(tiles, 0, 0, 32, 32, x*32, y*32, NULL);</span>
<span class="number"> 342</span><span class="c">                    break;</span>
<span class="number"> 343</span><span class="c">                case 1:</span>
<span class="number"> 344</span><span class="c">                    al_draw_bitmap_region(tiles, 32, 0, 32, 32, x*32, y*32, NULL);</span>
<span class="number"> 345</span><span class="c">                    break;</span>
<span class="number"> 346</span><span class="c">            } */</span>
<span class="number"> 347</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>tiles, Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k3">*</span><span class="n">32</span>, <span class="n">0</span>, <span class="n">32</span>, <span class="n">32</span>, x<span class="k3">*</span><span class="n">32</span>, y<span class="k3">*</span><span class="n">32</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 348</span>        <span class="k2">}</span>
<span class="number"> 349</span>    <span class="k2">}</span>
<span class="number"> 350</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 351</span>    
<span class="number"> 352</span>   <span class="c">// al_save_bitmap("Screenshot.png", BitTile);</span>
<span class="number"> 353</span><span class="k2">}</span>
<span class="number"> 354</span><span class="k1">bool</span> Collision<span class="k2">(</span><span class="k1">int</span> Tiles<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="n">30</span><span class="k2">]</span>, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> x, <span class="k1">const</span> <span class="k1">int</span><span class="k3">&amp;</span> y<span class="k2">)</span>
<span class="number"> 355</span><span class="k2">{</span>
<span class="number"> 356</span>    <span class="k1">if</span> <span class="k2">(</span>Tiles<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 357</span>        <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 358</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 359</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (EnClave)</author>
		<pubDate>Wed, 31 Oct 2012 15:55:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>When I get EXTREMELY stuck with a problem like this, I like to add keyboard-sensitive stepping in my code.</p><p>In your case, what this would mean is adding some routines to your tilemap rendering code so that it only draws one tile, shows the result on-screen, then waits for you to press a key. Then it draws the next tile, waits for a keypress, repeat until you press a specific key to signal the program to stop running.</p><p>This would at least let you visually see how your tiles are being rendered one by one and you may be able to tell what the trouble is as a result.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Sat, 03 Nov 2012 02:53:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You don&#39;t need extra code to do that, just a debugger <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (J-Gamer)</author>
		<pubDate>Sat, 03 Nov 2012 16:29:41 +0000</pubDate>
	</item>
</rss>
