<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>al_load_bitmap question</title>
		<link>http://www.allegro.cc/forums/view/618820</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 18 May 2023 23:18:59 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi all:<br />  Me again with another problem. I should know this but<br />I DO NOT. I have a situation where I enter a file like<br />&quot;apple.png&quot; to display. Normally I would hard code it in my program<br />and just run it. But now, I need to type it in on the keyboard<br />to enter it in my program. I then copy it to a buffer, My question<br />is how do I convert what is in the buffer to what I need for<br />al_load_bitmap(). I hope I have been clear on what I need.<br />I have it already in the buffer. I have printed out the buffer<br />and it is correct. I just need to convert it to use in al_load_bitmap().<br />Thanks for your time! Have a great day!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Tue, 16 May 2023 00:28:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Make a generic text box with a string. Add letters/numbers if typed. Handle backspace and others. When does enter, use to load bitmap.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Tue, 16 May 2023 00:42:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Daniel:<br />  I already have that. As an example: I have entered apple.png.<br />I have copied that to a buffer. All is well. This is what al_load_bitmap<br />needs: al_load_bitmap(&quot;apple.png&quot;). I have &quot;apple.png&quot; stored in the buffer.<br />What I need to know is: how to transfer &quot;apple.png&quot; from the buffer to the<br />al_load_bitmap() function. Thanks for your time!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Tue, 16 May 2023 00:54:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What buffer? The key buffer or an actual string? Can&#39;t you use that to load the bitmap?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Tue, 16 May 2023 01:29:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Daniel:<br />  I have a string buffer: char buf[50]; Yes I could use<br />it if I knew how. That is my question! Thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Tue, 16 May 2023 01:35:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just use it.</p><p>If buf contains a valid filename then just plug it in. As long as you have the image addon installed.</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bitmap <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>buf<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Tue, 16 May 2023 01:42:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Daniel:<br />  See my attachment above. This works perfectly.</p><p>Comment out the sprintf, it does not work.</p><p>printf command shows buf contains the right info.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Tue, 16 May 2023 02:23:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Code tags please. Saves me downloading a file.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><a href="http://www.allegro.cc/manual/al_ustr_to_buffer"><span class="a">al_ustr_to_buffer</span></a><span class="k2">(</span>str, buf, <span class="n">50</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  2</span>
<span class="number">  3</span><span class="c">//add this line. What's the output?</span>
<span class="number">  4</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s"</span>, <a href="http://www.allegro.cc/manual/al_cstr"><span class="a">al_cstr</span></a><span class="k2">(</span>str<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s"</span>, buf<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>
<span class="number">  8</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_737.html" target="_blank">sprintf</a><span class="k2">(</span>buf, <span class="s">"maggie.jpg"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> image <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>buf<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>
<span class="number"> 12</span><span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>image<span class="k2">)</span>
<span class="number"> 13</span><span class="k2">{</span>
<span class="number"> 14</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't display image!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 16</span><span class="k2">}</span>
</div></div><p>


Print your str variable. If it valid? Have you tried al_cstr? Just my guess, but I would say your str is not valid or garbage. How are you adding characters?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Tue, 16 May 2023 02:36:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Daniel:<br />   Sorry I could not get back to you last night. I have been<br />looking at this problem this morning.<br />printf(&quot;%s&quot;, buf); prints out correctly.<br />printf(&quot;%s&quot;, al_cstr(str)); prints out correctly.</p><p>For some reason al_load_bitmap(); is not picking up the info from buf.<br />Never had this problem before!<br />I will start a new program and see if I can get it working.</p><p>Have a great day!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Tue, 16 May 2023 18:28:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can you post the entire file?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Tue, 16 May 2023 20:28:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Daniel:<br />  Well, it looks like it is going to be a while. I now have<br />problems with my new program. Now it says it can&#39;t create the font.<br />Allegro5 SUCKS! I have had more problems getting Allegro5 to work<br />than anything I have ever used! Everything seems to be in order.<br />  What I am trying to do is taking everything out of my original<br />program and make a new program with just the text and bitmap that<br />is giving the problem.</p><p>I will be back later!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Wed, 17 May 2023 00:59:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>As always, Allegro 5 doesn’t suck, but you don’t want to post all of your code, and I don’t know why. We are here to help you and show you why your code doesn’t work, but you won’t show use your code, so we cannot help you.</p><p>I just tried using an allegro ustr, copied to a char buffer, and used it to load an image using al_load_bitmap, works fine.</p><p>Allegro 5 doesn’t suck, your code sucks.</p><p>👍
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Wed, 17 May 2023 01:51:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No, post what you already had. Let&#39;s take a look and see what the snag could be.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Wed, 17 May 2023 04:04:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Dizzy:<br />  Well, you got me and got me good. Probably should have not posted that.<br />Edgar, Mark, Matthew and all the others that helped develop this library,<br />that put their heart and soul into it, are NOT going to be happy that I<br />posted that. I will most likely be kicked off this site.<br />  Anyway, while I am still here I want to answer your question. I only<br />ask questions. I do not post much code, reason being I work only in Linux.<br />Most here work in Microsoft Windows. I don&#39;t because it is too much work.<br />Edgar and Matthew are the only ones I know that have access to Linux. I<br />have posted code for Edgar a few times. With a question, most of the time<br />I only need a hint and I can sometimes figure the rest out myself. I write<br />sloppy code, not the best coder out there for sure.<br />Again, sorry I posted what I did. Maybe I can slip thru this time.</p><p>Have a great day!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Wed, 17 May 2023 23:33:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Linux or Microsoft, it doesn&#39;t matter. It&#39;s all C (or maybe C++) code.</p><p>No one is going to kick you off this site. Unless you start speaking leet. That trend can stay gone! And when he says your code sucks, he means it in the nicest way. We joke around here. This site is pretty casual. Don&#39;t be afraid to ask. </p><p>We only want to see the code because we&#39;re guessing otherwise. You originally asked about a problem loading bitmaps. After some digging and code posting, we figured your actual problem was more about UTF8 string conversion to char string.</p><p>The section you posted is fine. There has got to be something else in your code and that&#39;s why we would like to see more of the code.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Wed, 17 May 2023 23:54:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Daniel:<br />  I need more info before sending code:</p><p>How to use code tags.<br />I think I used them one time for Edgar.<br />Do you want just the code or the whole program.<br />There are a few images that go along with the program.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Thu, 18 May 2023 00:50:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hey Scooter, it’s all good only joking around, lots of my code sucks!!</p><p>When you want to post code, put it in <span class="source-code"><span class="k3">&lt;</span>code&gt;<span class="k3">&lt;</span><span class="k3">/</span>code&gt;</span> tags, and it will format it. If you click formatting help when writing a post/reply it will show you how to use the various tags.</p><p>I think the most important part of your code to see is how you take the text entry and put it into the ustr, then we should be able to see why it’s not working correctly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Thu, 18 May 2023 01:21:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just the code please. If it&#39;s not too big. There is a post limit.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Thu, 18 May 2023 01:25:21 +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="p">#include &lt;allegro5/allegro.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;stdio.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;stdlib.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">   7</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">   8</span><span class="p">#include &lt;math.h&gt;</span>
<span class="number">   9</span><span class="p">#include &lt;string.h&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;stdbool.h&gt;</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="p">#define PI 3.1415927</span>
<span class="number">  13</span>
<span class="number">  14</span><span class="k1">float</span> screen_height <span class="k3">=</span> <span class="n">720</span><span class="k2">;</span>
<span class="number">  15</span><span class="k1">float</span> working_screen_height <span class="k3">=</span> <span class="n">690</span><span class="k2">;</span>
<span class="number">  16</span><span class="k1">float</span> screen_width <span class="k3">=</span> <span class="n">1280</span><span class="k2">;</span>
<span class="number">  17</span><span class="k1">float</span> image_height<span class="k2">;</span>
<span class="number">  18</span><span class="k1">float</span> image_width<span class="k2">;</span>
<span class="number">  19</span><span class="k1">float</span> scale_factor<span class="k2">;</span>
<span class="number">  20</span><span class="k1">float</span> dist<span class="k2">;</span>
<span class="number">  21</span><span class="k1">float</span> bitmap_x <span class="k3">=</span> <span class="n">640</span><span class="k2">;</span>
<span class="number">  22</span><span class="k1">float</span> bitmap_y <span class="k3">=</span> <span class="n">345</span><span class="k2">;</span>
<span class="number">  23</span>
<span class="number">  24</span><span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  25</span><span class="k1">bool</span> redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  26</span><span class="k1">bool</span> mouse_down <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  27</span><span class="k1">bool</span> mouse_in_box <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  28</span><span class="k1">bool</span> resizing <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  29</span><span class="k1">bool</span> move_bitmap <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  30</span><span class="k1">bool</span> lp <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>  <span class="c">// flag to open a file</span>
<span class="number">  31</span><span class="k1">int</span> box_x1 <span class="k3">=</span> <span class="n">1085</span><span class="k2">;</span>
<span class="number">  32</span><span class="k1">int</span> box_y1 <span class="k3">=</span> <span class="n">691</span><span class="k2">;</span>
<span class="number">  33</span><span class="k1">int</span> box_x2 <span class="k3">=</span> <span class="n">1210</span><span class="k2">;</span>
<span class="number">  34</span><span class="k1">int</span> box_y2 <span class="k3">=</span> <span class="n">720</span><span class="k2">;</span>
<span class="number">  35</span>
<span class="number">  36</span><span class="k1">float</span> center_x <span class="k3">=</span> <span class="n">640</span><span class="k2">;</span>
<span class="number">  37</span><span class="k1">float</span> center_y <span class="k3">=</span> <span class="n">345</span><span class="k2">;</span>
<span class="number">  38</span>
<span class="number">  39</span><span class="k1">int</span> point_x, point_y<span class="k2">;</span>
<span class="number">  40</span><span class="k1">int</span> pos_x,pos_y<span class="k2">;</span>
<span class="number">  41</span><span class="k1">int</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a>, <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a><span class="k2">;</span>
<span class="number">  42</span><span class="k1">float</span> angle <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  43</span><span class="k1">int</span> i<span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</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">  46</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a>  <span class="k3">*</span>image   <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  47</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a>  <span class="k3">*</span>image1  <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  48</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a>  <span class="k3">*</span>image2  <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  49</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a>  <span class="k3">*</span>image3 <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  50</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a>  <span class="k3">*</span>zoom_image <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  51</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a>  <span class="k3">*</span>temp_image <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  52</span>
<span class="number">  53</span><span class="k1">char</span> buf<span class="k2">[</span><span class="n">50</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  54</span>
<span class="number">  55</span><span class="c">//void draw_menu();</span>
<span class="number">  56</span><span class="k1">int</span> draw_default_size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span><span class="k1">int</span> draw_full_screen<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  58</span><span class="k1">void</span> zoom_created_image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span><span class="k1">void</span> rotate_image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span><span class="k1">void</span> load_image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  61</span>
<span class="number">  62</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  63</span>   <span class="k2">{</span>
<span class="number">  64</span>      <span class="c">//ALLEGRO_DISPLAY *display = NULL;</span>
<span class="number">  65</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer<span class="k2">;</span>
<span class="number">  66</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  67</span>
<span class="number">  68</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">  69</span>        <span class="k2">{</span>
<span class="number">  70</span>           <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't initialize allegro!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  71</span>            <span class="k1">return</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="number">  74</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  75</span>        <span class="k2">{</span>
<span class="number">  76</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize the mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  78</span>        <span class="k2">}</span>
<span class="number">  79</span>
<span class="number">  80</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  81</span>        <span class="k2">{</span>
<span class="number">  82</span>          <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't initialize primitives addon!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>          <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  84</span>        <span class="k2">}</span>
<span class="number">  85</span>
<span class="number">  86</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  87</span>        <span class="k2">{</span>
<span class="number">  88</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize the mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  90</span>        <span class="k2">}</span>
<span class="number">  91</span>
<span class="number">  92</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>screen_width, screen_height<span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>
<span class="number">  94</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  95</span>        <span class="k2">{</span>
<span class="number">  96</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't create allegro display!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  97</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  98</span>        <span class="k2">}</span>
<span class="number">  99</span>
<span class="number"> 100</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 101</span>        <span class="k2">{</span>
<span class="number"> 102</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't display image!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 104</span>        <span class="k2">}</span>
<span class="number"> 105</span>
<span class="number"> 106</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"> 107</span>
<span class="number"> 108</span>      <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span>      <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>
<span class="number"> 111</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">60</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>
<span class="number"> 113</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"> 114</span>
<span class="number"> 115</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"> 116</span>      <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_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"> 117</span>      <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>      <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_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"> 119</span>
<span class="number"> 120</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_USTR"><span class="a">ALLEGRO_USTR</span></a><span class="k3">*</span> input <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span><span class="s">" "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>      <span class="k1">int</span> pos <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><a href="http://www.allegro.cc/manual/al_ustr_size"><span class="a">al_ustr_size</span></a><span class="k2">(</span>input<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 122</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font16 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"DroidSerif-Bold.ttf"</span> , <span class="n">16</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>
<span class="number"> 124</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">20</span>, <span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>      <span class="c">// for better quality</span>
<span class="number"> 126</span>  <span class="c">//    al_set_new_bitmap_flags(ALLEGRO_MIN_LINEAR | ALLEGRO_MAG_LINEAR);</span>
<span class="number"> 127</span>      image <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">"mountain.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>      image1 <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">"menu.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 129</span>      image2 <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">"blank.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>
<span class="number"> 131</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>image<span class="k2">)</span>
<span class="number"> 132</span>         <span class="k2">{</span>
<span class="number"> 133</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't display image!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 135</span>         <span class="k2">}</span>
<span class="number"> 136</span>
<span class="number"> 137</span>      image_height <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>      image_width <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, <span class="k2">(</span>screen_width <span class="k3">-</span> image_width<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>, <span class="k2">(</span>working_screen_height <span class="k3">-</span> image_height<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 140</span>
<span class="number"> 141</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image1, <span class="n">0</span>, <span class="n">690</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 142</span>  <span class="c">//    draw_menu();</span>
<span class="number"> 143</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"> 144</span><span class="c">/*</span>
<span class="number"> 145</span><span class="c">     //   for reference only</span>
<span class="number"> 146</span><span class="c">    al_draw_scaled_bitmap(King,</span>
<span class="number"> 147</span><span class="c">        0, 0,</span>
<span class="number"> 148</span><span class="c">        al_get_bitmap_width(King), al_get_bitmap_height(King),</span>
<span class="number"> 149</span><span class="c">        x_position, y_position,</span>
<span class="number"> 150</span><span class="c">        scaled_width, scaled_height,</span>
<span class="number"> 151</span><span class="c">        0);</span>
<span class="number"> 152</span><span class="c">*/</span>
<span class="number"> 153</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"> 154</span>
<span class="number"> 155</span>      <span class="k1">int</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 156</span>
<span class="number"> 157</span>      <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 158</span>         <span class="k2">{</span>
<span class="number"> 159</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"> 160</span>         <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 161</span>           <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 162</span>             <span class="k2">{</span>
<span class="number"> 163</span>                done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 164</span>             <span class="k2">}</span>
<span class="number"> 165</span>
<span class="number"> 166</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"> 167</span>          <span class="k2">{</span>
<span class="number"> 168</span>            <span class="k1">switch</span><span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 169</span>              <span class="k2">{</span>
<span class="number"> 170</span>                 <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<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="k1">break</span><span class="k2">;</span>
<span class="number"> 173</span>
<span class="number"> 174</span>                 <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 175</span>                         bitmap_x <span class="k3">-</span><span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 176</span>                         zoom_created_image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 177</span>                 <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 178</span>
<span class="number"> 179</span>                 <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 180</span>                         bitmap_x <span class="k3">+</span><span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 181</span>                         zoom_created_image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 182</span>                 <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 183</span>
<span class="number"> 184</span>                 <span class="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 185</span>                         bitmap_y <span class="k3">-</span><span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 186</span>                         zoom_created_image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 187</span>                 <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 188</span>
<span class="number"> 189</span>                 <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 190</span>                         bitmap_y <span class="k3">+</span><span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number"> 191</span>                         zoom_created_image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 192</span>                 <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 193</span>                    <span class="k2">}</span>
<span class="number"> 194</span>              <span class="k2">}</span>
<span class="number"> 195</span>
<span class="number"> 196</span>          <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_CHAR<span class="k2">)</span>
<span class="number"> 197</span>            <span class="k2">{</span>
<span class="number"> 198</span>              <span class="k1">if</span><span class="k2">(</span>ev.keyboard.unichar <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">32</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.keyboard.unichar <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">127</span><span class="k2">)</span>
<span class="number"> 199</span>                 <span class="k2">{</span>
<span class="number"> 200</span>               <span class="c">//   al_ustr_append_chr(input, ev.keyboard.unichar);</span>
<span class="number"> 201</span>                    pos <span class="k3">+</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_ustr_append_chr"><span class="a">al_ustr_append_chr</span></a><span class="k2">(</span>input, ev.keyboard.unichar<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 202</span>                    <a href="http://www.allegro.cc/manual/al_draw_ustr"><span class="a">al_draw_ustr</span></a><span class="k2">(</span>font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span>, <span class="n">175</span>, <span class="n">696</span>, ALLEGRO_ALIGN_LEFT, input<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 203</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"> 204</span>                 <span class="k2">}</span>
<span class="number"> 205</span>              <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_BACKSPACE<span class="k2">)</span>
<span class="number"> 206</span>                 <span class="k2">{</span>
<span class="number"> 207</span>                    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_ustr_prev"><span class="a">al_ustr_prev</span></a><span class="k2">(</span>input, <span class="k3">&amp;</span>pos<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 208</span>                       <span class="k2">{</span>
<span class="number"> 209</span>                          <a href="http://www.allegro.cc/manual/al_ustr_truncate"><span class="a">al_ustr_truncate</span></a><span class="k2">(</span>input, pos<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 210</span>
<span class="number"> 211</span>                          <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, <span class="n">0</span>, <span class="n">690</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 212</span>                          <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">10</span> , <span class="n">696</span> ,<span class="n">0</span> ,<span class="s">"Enter File To OPEN:"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 213</span>                          <a href="http://www.allegro.cc/manual/al_draw_ustr"><span class="a">al_draw_ustr</span></a><span class="k2">(</span>font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span>, <span class="n">175</span>, <span class="n">696</span>, ALLEGRO_ALIGN_LEFT, input<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 214</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"> 215</span>                       <span class="k2">}</span>
<span class="number"> 216</span>                 <span class="k2">}</span>
<span class="number"> 217</span>
<span class="number"> 218</span>              <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ENTER<span class="k2">)</span>
<span class="number"> 219</span>                 <span class="k2">{</span>
<span class="number"> 220</span>                    <a href="http://www.allegro.cc/manual/al_ustr_to_buffer"><span class="a">al_ustr_to_buffer</span></a><span class="k2">(</span>input, buf, <span class="n">50</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 221</span>
<span class="number"> 222</span>                    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s\n"</span>, buf<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 223</span>                     <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s"</span>, <a href="http://www.allegro.cc/manual/al_cstr"><span class="a">al_cstr</span></a><span class="k2">(</span>input<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 224</span>
<span class="number"> 225</span>                 <span class="c">//   sprintf(buf, "maggie.jpg");</span>
<span class="number"> 226</span>
<span class="number"> 227</span>                 <span class="c">//   ALLEGRO_BITMAP*</span>
<span class="number"> 228</span>                     image <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>buf<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 229</span>
<span class="number"> 230</span>                    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>image<span class="k2">)</span>
<span class="number"> 231</span>                      <span class="k2">{</span>
<span class="number"> 232</span>                         <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't display image!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 233</span>                         <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 234</span>                      <span class="k2">}</span>
<span class="number"> 235</span>
<span class="number"> 236</span>                    image_height <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 237</span>                    image_width <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 238</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"> 239</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image1, <span class="n">0</span>, <span class="n">690</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 240</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, <span class="k2">(</span>screen_width <span class="k3">-</span> image_width<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>, <span class="k2">(</span>working_screen_height <span class="k3">-</span> image_height<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 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>                 <span class="k2">}</span>
<span class="number"> 243</span>
<span class="number"> 244</span>             <span class="k2">}</span>
<span class="number"> 245</span>
<span class="number"> 246</span>         <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 247</span>             <span class="k2">{</span>
<span class="number"> 248</span>                redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 249</span>                <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">&gt;</span><span class="k3">=</span> box_x1 <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">&lt;</span><span class="k3">=</span> box_x2<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">&gt;</span><span class="k3">=</span> box_y1 <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">&lt;</span><span class="k3">=</span> box_y2<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 250</span>                    <span class="k2">{</span>
<span class="number"> 251</span>                       mouse_in_box <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 252</span>                    <span class="k2">}</span>
<span class="number"> 253</span>                  <span class="k1">else</span>
<span class="number"> 254</span>                    <span class="k2">{</span>
<span class="number"> 255</span>                       mouse_in_box <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 256</span>                       resizing <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 257</span>                    <span class="k2">}</span>
<span class="number"> 258</span>             <span class="k2">}</span>
<span class="number"> 259</span>
<span class="number"> 260</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 261</span>
<span class="number"> 262</span>             <span class="k2">{</span>
<span class="number"> 263</span>                mouse_down <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 264</span>
<span class="number"> 265</span>                <span class="k1">if</span> <span class="k2">(</span>mouse_in_box<span class="k2">)</span>
<span class="number"> 266</span>                   <span class="k2">{</span>
<span class="number"> 267</span>                    resizing <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 268</span>                   <span class="k2">}</span>
<span class="number"> 269</span>                 <span class="k1">else</span>
<span class="number"> 270</span>                   <span class="k2">{</span>
<span class="number"> 271</span>                      resizing <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 272</span>                   <span class="k2">}</span>
<span class="number"> 273</span>             <span class="k2">}</span>
<span class="number"> 274</span>
<span class="number"> 275</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_UP <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 276</span>
<span class="number"> 277</span>             <span class="k2">{</span>
<span class="number"> 278</span>                 mouse_down <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 279</span>                 resizing <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 280</span>             <span class="k2">}</span>
<span class="number"> 281</span>
<span class="number"> 282</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number"> 283</span>
<span class="number"> 284</span>             <span class="k2">{</span>
<span class="number"> 285</span>                  <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">=</span> ev.mouse.x<span class="k2">;</span>  <span class="c">// get present mouse position</span>
<span class="number"> 286</span>                  <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">=</span> ev.mouse.y<span class="k2">;</span>
<span class="number"> 287</span>
<span class="number"> 288</span>                  <span class="k1">if</span><span class="k2">(</span>resizing<span class="k2">)</span>
<span class="number"> 289</span>                    <span class="k2">{</span>
<span class="number"> 290</span>                        image_height <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 291</span>                        image_width <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 292</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"> 293</span>                        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image1, <span class="n">0</span>, <span class="n">690</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 294</span>                     <span class="c">//   draw_menu();</span>
<span class="number"> 295</span>                      scale_factor <span class="k3">=</span> working_screen_height <span class="k3">/</span> image_height<span class="k2">;</span>
<span class="number"> 296</span>                      dist <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">-</span> <span class="n">1085</span><span class="k2">;</span>
<span class="number"> 297</span>                      scale_factor <span class="k3">=</span> scale_factor <span class="k3">*</span> <span class="k2">(</span>dist <span class="k3">/</span> <span class="n">127</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">// ratio image height/length of rectangle</span>
<span class="number"> 298</span>                        <a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a><span class="k2">(</span>image,
<span class="number"> 299</span>                            <span class="n">0</span>, <span class="n">0</span>, image_width, image_height,
<span class="number"> 300</span>                            <span class="k2">(</span>screen_width <span class="k3">-</span> <span class="k2">(</span>scale_factor <span class="k3">*</span> image_width<span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>.<span class="n">0</span>,           <span class="c">// final x position</span>
<span class="number"> 301</span>                            <span class="k2">(</span><span class="k2">(</span>working_screen_height <span class="k3">-</span> scale_factor <span class="k3">*</span> image_height<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">)</span>, <span class="c">// final y position</span>
<span class="number"> 302</span>                            image_width <span class="k3">*</span> scale_factor, image_height <span class="k3">*</span> scale_factor, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 303</span>                        <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// let's see it on screen</span>
<span class="number"> 304</span>
<span class="number"> 305</span>                     <span class="k2">}</span>
<span class="number"> 306</span>
<span class="number"> 307</span>             <span class="k2">}</span>
<span class="number"> 308</span>
<span class="number"> 309</span>           <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>
<span class="number"> 310</span>               <span class="k2">{</span>
<span class="number"> 311</span>                 <span class="k1">if</span><span class="k2">(</span> ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 312</span>                    <span class="k2">{</span>
<span class="number"> 313</span>                         pos_x <span class="k3">=</span> ev.mouse.x<span class="k2">;</span>
<span class="number"> 314</span>                         pos_y <span class="k3">=</span> ev.mouse.y<span class="k2">;</span>
<span class="number"> 315</span>                       <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>pos_x <span class="k3">&gt;</span> <span class="n">1220</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_x <span class="k3">&lt;</span> <span class="n">1285</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>pos_y <span class="k3">&gt;</span> <span class="n">685</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&lt;</span> <span class="n">720</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 316</span>                            <span class="k2">{</span>
<span class="number"> 317</span>                              done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>   <span class="c">/* EXIT */</span>
<span class="number"> 318</span>                          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 319</span>                            <span class="k2">}</span>
<span class="number"> 320</span>                    <span class="k2">}</span>
<span class="number"> 321</span>               <span class="k2">}</span>
<span class="number"> 322</span>
<span class="number"> 323</span>          <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>
<span class="number"> 324</span>               <span class="k2">{</span>
<span class="number"> 325</span>                 <span class="k1">if</span><span class="k2">(</span> ev.mouse.button <span class="k3">=</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>                       <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>pos_x <span class="k3">&gt;</span> <span class="n">989</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_x <span class="k3">&lt;</span> <span class="n">1075</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>pos_y <span class="k3">&gt;</span> <span class="n">685</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&lt;</span> <span class="n">720</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 328</span>                            <span class="k2">{</span>
<span class="number"> 329</span>                              draw_default_size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>    <span class="c">/* DEFAULT SIZE */</span>
<span class="number"> 330</span>                          <span class="k2">}</span>
<span class="number"> 331</span>
<span class="number"> 332</span>                       <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>pos_x <span class="k3">&gt;</span> <span class="n">861</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_x <span class="k3">&lt;</span> <span class="n">970</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>pos_y <span class="k3">&gt;</span> <span class="n">685</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&lt;</span> <span class="n">720</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 333</span>                            <span class="k2">{</span>
<span class="number"> 334</span>                              draw_full_screen<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>    <span class="c">/* fullscreen */</span>
<span class="number"> 335</span>                          <span class="k2">}</span>
<span class="number"> 336</span>
<span class="number"> 337</span>                       <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>pos_x <span class="k3">&gt;</span> <span class="n">720</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_x <span class="k3">&lt;</span> <span class="n">845</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>pos_y <span class="k3">&gt;</span> <span class="n">685</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&lt;</span> <span class="n">720</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 338</span>                            <span class="k2">{</span>
<span class="number"> 339</span>                              rotate_image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>    <span class="c">/* rotate image ? degrees right */</span>
<span class="number"> 340</span>                          <span class="k2">}</span>
<span class="number"> 341</span>
<span class="number"> 342</span>                       <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>pos_x <span class="k3">&gt;</span> <span class="n">632</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_x <span class="k3">&lt;</span> <span class="n">700</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>pos_y <span class="k3">&gt;</span> <span class="n">685</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&lt;</span> <span class="n">720</span><span class="k2">)</span><span class="k2">)</span>    <span class="c">//ZOOM IMAGE</span>
<span class="number"> 343</span>                            <span class="k2">{</span>
<span class="number"> 344</span>                                zoom_created_image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 345</span>                          <span class="k2">}</span>
<span class="number"> 346</span>
<span class="number"> 347</span>                       <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>pos_x <span class="k3">&gt;</span> <span class="n">8</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_x <span class="k3">&lt;</span> <span class="n">60</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>pos_y <span class="k3">&gt;</span> <span class="n">685</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&lt;</span> <span class="n">720</span><span class="k2">)</span><span class="k2">)</span>    <span class="c">//LOAD IMAGE</span>
<span class="number"> 348</span>                            <span class="k2">{</span>
<span class="number"> 349</span>                                load_image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 350</span>                          <span class="k2">}</span>
<span class="number"> 351</span>                      <span class="k2">}</span>
<span class="number"> 352</span>
<span class="number"> 353</span>               <span class="k2">}</span>
<span class="number"> 354</span>
<span class="number"> 355</span>         <span class="k2">}</span>
<span class="number"> 356</span>
<span class="number"> 357</span>   <span class="c">/*   al_rest(10.0);  */</span>
<span class="number"> 358</span>
<span class="number"> 359</span>       <span class="c">// clean up system on exit</span>
<span class="number"> 360</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"> 361</span>      <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 362</span>      <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>image1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 363</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"> 364</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"> 365</span>      <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 366</span>   <span class="k2">}</span>
<span class="number"> 367</span>
<span class="number"> 368</span>
<span class="number"> 369</span><span class="c">//   for reference only  use image1 instead</span>
<span class="number"> 370</span><span class="k1">void</span> draw_menu<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 371</span>   <span class="k2">{</span>
<span class="number"> 372</span>       <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font16 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"DroidSerif-Bold.ttf"</span> , <span class="n">16</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 373</span>
<span class="number"> 374</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><span class="n">0</span>, <span class="n">690</span>, <span class="n">1280</span>, <span class="n">720</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">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 375</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><span class="n">1085</span>, <span class="n">690</span>, <span class="n">1210</span>, <span class="n">720</span>, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 376</span>
<span class="number"> 377</span>       <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span> font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">10</span> , <span class="n">696</span> ,<span class="n">0</span> ,<span class="s">"OPEN"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 378</span>       <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span> font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">70</span> , <span class="n">696</span> ,<span class="n">0</span> ,<span class="s">"SAVE"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 379</span>
<span class="number"> 380</span>       <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span> font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">718</span> , <span class="n">696</span> ,<span class="n">0</span> ,<span class="s">"ROTATE-RIGHT"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 381</span>       <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span> font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">632</span> , <span class="n">696</span> ,<span class="n">0</span> ,<span class="s">"MIRROR"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 382</span>       <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span> font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">861</span> , <span class="n">696</span> ,<span class="n">0</span> ,<span class="s">"FULLSCREEN"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 383</span>       <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span> font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">989</span> , <span class="n">696</span> ,<span class="n">0</span> ,<span class="s">"DEFAULT"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 384</span>       <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span> font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">1225</span> , <span class="n">696</span> ,<span class="n">0</span> ,<span class="s">"QUIT"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 385</span>   <span class="k2">}</span>
<span class="number"> 386</span>
<span class="number"> 387</span><span class="k1">void</span> rotate_image<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 388</span>   <span class="k2">{</span>
<span class="number"> 389</span>       angle <span class="k3">=</span> <span class="k2">(</span><span class="n">90</span>.<span class="n">0</span> <span class="k3">*</span> PI<span class="k2">)</span> <span class="k3">/</span> <span class="n">180</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 390</span>       image_height <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 391</span>       image_width <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 392</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"> 393</span>       <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image1, <span class="n">0</span>, <span class="n">690</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 394</span>
<span class="number"> 395</span>       <a href="http://www.allegro.cc/manual/al_draw_rotated_bitmap"><span class="a">al_draw_rotated_bitmap</span></a><span class="k2">(</span>image, image_width <span class="k3">/</span> <span class="n">2</span>.<span class="n">0</span>, image_height <span class="k3">/</span> <span class="n">2</span>.<span class="n">0</span>,
<span class="number"> 396</span>         screen_width <span class="k3">/</span> <span class="n">2</span>.<span class="n">0</span>, working_screen_height <span class="k3">/</span> <span class="n">2</span>.<span class="n">0</span>, angle, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 397</span>
<span class="number"> 398</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"> 399</span>
<span class="number"> 400</span>   <span class="k2">}</span>
<span class="number"> 401</span>
<span class="number"> 402</span><span class="k1">void</span> load_image<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 403</span>   <span class="k2">{</span>
<span class="number"> 404</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font16 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"DroidSerif-Bold.ttf"</span> , <span class="n">16</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 405</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, <span class="n">0</span>, <span class="n">690</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 406</span>      <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span> font16, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">10</span> , <span class="n">696</span> ,<span class="n">0</span> ,<span class="s">"Enter File To OPEN:"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 407</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"> 408</span>
<span class="number"> 409</span>    <span class="c">//   al_draw_bitmap(image1, 0, 690, 0);</span>
<span class="number"> 410</span>    <span class="c">//   al_flip_display();</span>
<span class="number"> 411</span>   <span class="k2">}</span>
<span class="number"> 412</span>
<span class="number"> 413</span> <span class="k1">void</span> zoom_created_image<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 414</span>   <span class="k2">{</span>
<span class="number"> 415</span>       image_height <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 416</span>       image_width <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 417</span>       scale_factor <span class="k3">=</span> <span class="n">4</span>.<span class="n">0</span><span class="k2">;</span> <span class="c">//??????</span>
<span class="number"> 418</span>   <span class="c">//    bitmap_x = (screen_width - (scale_factor * image_width)) / 2.0;</span>
<span class="number"> 419</span>   <span class="c">//    bitmap_y = ((working_screen_height - scale_factor * image_height) / 2.0);</span>
<span class="number"> 420</span>
<span class="number"> 421</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"> 422</span>       <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image1, <span class="n">0</span>, <span class="n">690</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 423</span>
<span class="number"> 424</span>     dist <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">-</span> <span class="n">1085</span><span class="k2">;</span>
<span class="number"> 425</span>       <a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a><span class="k2">(</span>image,
<span class="number"> 426</span>          <span class="n">0</span>, <span class="n">0</span>, image_width, image_height, bitmap_x <span class="k3">-</span> <span class="k2">(</span>image_width <span class="k3">*</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">)</span>, bitmap_y <span class="k3">-</span> <span class="k2">(</span>image_height <span class="k3">*</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 427</span>          image_width <span class="k3">*</span> scale_factor, image_height <span class="k3">*</span> scale_factor, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 428</span>       <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image1, <span class="n">0</span>, <span class="n">690</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>   <span class="c">// menu at screen bottom</span>
<span class="number"> 429</span>       <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// let's see it on screen</span>
<span class="number"> 430</span>   <span class="k2">}</span>
<span class="number"> 431</span>
<span class="number"> 432</span><span class="k1">int</span> draw_default_size<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 433</span>   <span class="k2">{</span>
<span class="number"> 434</span>       image_height <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 435</span>       image_width <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 436</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">20</span>, <span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 437</span>   <span class="c">//    draw_menu();</span>
<span class="number"> 438</span>       <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image1, <span class="n">0</span>, <span class="n">690</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 439</span>       scale_factor <span class="k3">=</span> <span class="n">1</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 440</span>       <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, <span class="k2">(</span>screen_width <span class="k3">-</span> image_width<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>, <span class="k2">(</span>working_screen_height <span class="k3">-</span> image_height<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 441</span>   <span class="c">//    al_draw_circle(screen_width / 2, working_screen_height / 2, 5, al_map_rgb(255,0,0), 2);</span>
<span class="number"> 442</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"> 443</span>   <span class="k2">}</span>
<span class="number"> 444</span>
<span class="number"> 445</span><span class="k1">int</span> draw_full_screen<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 446</span>   <span class="k2">{</span>
<span class="number"> 447</span>       image_height <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 448</span>       image_width <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>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 449</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">20</span>, <span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 450</span>   <span class="c">//   draw_menu();</span>
<span class="number"> 451</span>       <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image1, <span class="n">0</span>, <span class="n">690</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 452</span>
<span class="number"> 453</span>       scale_factor <span class="k3">=</span> working_screen_height <span class="k3">/</span> image_height<span class="k2">;</span>
<span class="number"> 454</span>       <a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a><span class="k2">(</span>image,
<span class="number"> 455</span>          <span class="n">0</span>, <span class="n">0</span>, image_width, image_height,
<span class="number"> 456</span>          <span class="k2">(</span>screen_width <span class="k3">-</span> <span class="k2">(</span>scale_factor <span class="k3">*</span> image_width<span class="k2">)</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>.<span class="n">0</span>, <span class="k2">(</span><span class="k2">(</span>scale_factor <span class="k3">/</span> image_height<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 457</span>          image_width <span class="k3">*</span> scale_factor, image_height <span class="k3">*</span> scale_factor, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 458</span>
<span class="number"> 459</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"> 460</span>   <span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Thu, 18 May 2023 01:39:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Could it be that when you call <span class="source-code"><a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span></span>” ”<span class="source-code"><span class="k2">)</span></span> you create it with a space? Have you tried calling <span class="source-code"><a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span></span>””<span class="source-code"><span class="k2">)</span></span> without the space? It may be that even though the string looks ok it actually had a space in front of it?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Thu, 18 May 2023 02:17:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Dizzy:<br />  Yes it does have a space. I remember putting them there.<br />Should I remove them and report back?</p><p>Great job guys! Thanks!</p><p>edit:<br />  There was a space. I removed it and now it works perfect!<br />Why did the space cause it NOT to work?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Thu, 18 May 2023 02:26:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Remove the space.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Thu, 18 May 2023 02:27:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Daniel:</p><p>  I did remove the space and now it works perfect.<br />Hard to believe that would keep it from working.</p><p>Great job guys! Thanks!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Thu, 18 May 2023 02:37:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It would have worked if your file was called “ maggie.jpg” and not “maggie.jpg” !!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Thu, 18 May 2023 02:39:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Could also do some overkill to avoid using string literals in your USTR creation.
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ALLEGRO_USTR"><span class="a">ALLEGRO_USTR</span></a><span class="k3">*</span> input <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_ustr_dup"><span class="a">al_ustr_dup</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_ustr_empty_string"><span class="a">al_ustr_empty_string</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

some things to discuss</p><p>1. Before you load the updated image file, make sure you destroy the current image.</p><p>2. Not sure if these functions are getting called, but I saw a few times you load a font into font16; That should be loaded at the front. Once and done. Destroy when program close.</p><p>3. Make your life just a bit better and split this up into multiple functions. </p><div class="source-code snippet"><div class="inner"><pre><span class="c">// my main 6 functions</span>
<span class="k1">int</span> init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// intialize program, return -1 on any failure</span>
<span class="k1">void</span> shutdown<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// this frees any allocated memory</span>
<span class="k1">void</span> loop<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// main loop</span>
<span class="k1">int</span> input<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// ALL and only events are processed here. No logic. no drawing. return -1 on close request</span>
<span class="k1">int</span> logic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// update anything based on the latest input status return -1 on any issue or program close request</span>
<span class="k1">void</span> draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// ONLY place things should be drawn in the entire program</span>
</pre></div></div><p>


Check out my basic pp <a href="https://github.com/dlharmon911/Framework/blob/master/Framework/src/app.cpp">framework</a> on Github</p><p>It&#39;s C++, but can easily be made into C.</p><p>If you&#39;re feeling ambitions, I made a simple <a href="https://github.com/dlharmon911/TicTacToe/tree/master/TicTacToe">TicTacToe game</a> from the same framework code. Also on Github.</p><p>See in the input section. I&#39;m only updating variables from the events triggered. These variables are then processed in the logic section. Any update and it sets my dirty bool to true. which triggers a redraw.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Thu, 18 May 2023 04:12:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello Scooter <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Please don&#39;t get so frustrated. It&#39;s only code after all, I know you want it to work, but that is part of the process. Every time you learn how it doesn&#39;t work, you&#39;re one step closer to making it work and never making that mistake again. Trust the process.</p><p>Edgar
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 18 May 2023 22:58:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>And, take what we say with a grain of salt. We&#39;re just here to give suggestions, but no one way is perfect for everyone. What works for you is what you should do. </p><p>That fact that you got it running is great!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Thu, 18 May 2023 23:18:59 +0000</pubDate>
	</item>
</rss>
