<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Mouse Lag / Not Keyboard</title>
		<link>http://www.allegro.cc/forums/view/618817</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 11 May 2023 20:30:44 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Following up on my Linux Vs Windows FPS question.  A quick recap, when I compile my match game in Windows 10, the game functions pretty good considering where I&#39;m at in the fine tuning.  However when I compile in Linux Kubuntu 22, the game works the same initially but quickly starts lagging.  After about 3-4 attempts to match colors (concentration type game for grandkids) it lags to the point you can&#39;t tell if it&#39;s read your response or not.</p><p>Well this weekend I was showing someone the program and got the same lag until I used the keyboard instead of mouse to flip the cards.  The game allows for both. So my question, would there be a difference in mouse reaction OS to OS? It doesn&#39;t appear to be so with the keyboard.  Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Mon, 08 May 2023 21:25:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Show your event handling code and game loop.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 08 May 2023 23:14:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is the same code as before or have you fixed that? There has got to be something else.</p><p>As always, code please.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Tue, 09 May 2023 02:05:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks guys, I&#39;ll clean my code up and post it.</p><p>UPDATE: Until then, The need for seeing the code would imply that code flow can affect variation in performance machine to machine.  Is this the case?  Meaning if the code is lacking (and I&#39;m sure it is in some areas) wouldn&#39;t it be the same lacking code on both Windows and Linux?  I would think the issue would lie in the OS or the machine itself.   Just thinking out loud.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Tue, 09 May 2023 18:14:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No code means we are guessing what the problem could be instead of giving clear answers.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Tue, 09 May 2023 19:51:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok all.  Here is the code that involves drawing to screen. </p><p>Main with title screen
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">/**********************INCLUDES ***********************/</span>
<span class="number">  2</span><span class="p">#include &lt;cstdio&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;cstdlib&gt;</span>
<span class="number">  4</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  5</span><span class="p">#include &lt;string&gt;</span>
<span class="number">  6</span><span class="p">#include &lt;allegro5/allegro5.h&gt;</span>
<span class="number">  7</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">  8</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">  9</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number"> 10</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number"> 11</span><span class="p">#include &lt;allcolor_A5.h&gt;</span>
<span class="number"> 12</span><span class="p">#include &lt;matches.h&gt;</span>
<span class="number"> 13</span>
<span class="number"> 14</span><span class="c">/********************* DEFINES *******/</span>
<span class="number"> 15</span>
<span class="number"> 16</span><span class="c">/********************* STRUCTS *******/</span>
<span class="number"> 17</span>
<span class="number"> 18</span><span class="c">/********************* FUNCTION DECLARE ******/</span>
<span class="number"> 19</span><span class="k1">void</span> a_init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span><span class="k1">bool</span> game_play<span class="k2">(</span>BLOCKS<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span><span class="k1">void</span> card_setup<span class="k2">(</span>BLOCKS<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span><span class="k1">void</span> match_setup<span class="k2">(</span>BLOCKS<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>
<span class="number"> 24</span><span class="c">/********************* EXTERNALS ******/</span>
<span class="number"> 25</span><span class="k1">extern</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"> 26</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> queue<span class="k2">;</span>
<span class="number"> 27</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> disp<span class="k2">;</span>
<span class="number"> 28</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a><span class="k3">*</span> <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">;</span>
<span class="number"> 29</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a><span class="k3">*</span> scr_font<span class="k2">;</span>
<span class="number"> 30</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number"> 31</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> titlescr<span class="k2">;</span>
<span class="number"> 32</span><span class="c">/******************* Main() *****************/</span>
<span class="number"> 33</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span>
<span class="number"> 34</span><span class="k2">{</span>
<span class="number"> 35</span><span class="k1">bool</span> bQuit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 36</span>BLOCKS Blocks<span class="k2">[</span>CQTY<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 37</span><span class="k1">int</span> pos_x <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span>
<span class="number"> 38</span><span class="k1">int</span> pos_y <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span>
<span class="number"> 39</span>
<span class="number"> 40</span>  a_init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>  card_setup<span class="k2">(</span>Blocks<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span>  match_setup<span class="k2">(</span>Blocks<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>
<span class="number"> 44</span>
<span class="number"> 45</span>
<span class="number"> 46</span><span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>bQuit<span class="k2">)</span>
<span class="number"> 47</span><span class="k2">{</span>
<span class="number"> 48</span>
<span class="number"> 49</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>queue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 50</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>COLOR::BLACK<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>
<span class="number"> 52</span>
<span class="number"> 53</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>titlescr, <span class="n">0</span>,<span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 54</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"> 55</span>    <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 56</span>  <span class="k2">{</span>
<span class="number"> 57</span>    <span class="k1">if</span><span class="k2">(</span>event.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_P<span class="k2">)</span>
<span class="number"> 58</span>      bQuit <span class="k3">=</span> game_play<span class="k2">(</span>Blocks<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 59</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE <span class="k3">|</span><span class="k3">|</span>event.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_P<span class="k2">)</span>
<span class="number"> 60</span>      bQuit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 61</span>  <span class="k2">}</span><span class="c">// end if event.type</span>
<span class="number"> 62</span>
<span class="number"> 63</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number"> 64</span>    <span class="k2">{</span> pos_y <span class="k3">=</span> event.mouse.y<span class="k2">;</span>
<span class="number"> 65</span>      pos_x <span class="k3">=</span> event.mouse.x<span class="k2">;</span>
<span class="number"> 66</span>    <span class="k2">}</span> <span class="c">// end mouse axis</span>
<span class="number"> 67</span>
<span class="number"> 68</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>
<span class="number"> 69</span>    <span class="k2">{</span>
<span class="number"> 70</span>      <span class="k1">if</span><span class="k2">(</span>pos_x <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">489</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">343</span><span class="k2">)</span>
<span class="number"> 71</span>       <span class="k2">{</span>
<span class="number"> 72</span>          <span class="k1">if</span><span class="k2">(</span>pos_x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">575</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y<span class="k3">&lt;</span><span class="k3">=</span> <span class="n">379</span><span class="k2">)</span>
<span class="number"> 73</span>           <span class="k2">{</span>
<span class="number"> 74</span>         bQuit <span class="k3">=</span> game_play<span class="k2">(</span>Blocks<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 75</span>              <span class="k2">}</span>
<span class="number"> 76</span>      <span class="k2">}</span><span class="c">// end location if</span>
<span class="number"> 77</span>      <span class="k1">if</span> <span class="k2">(</span>pos_x <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">489</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">415</span><span class="k2">)</span>
<span class="number"> 78</span>       <span class="k2">{</span>
<span class="number"> 79</span>          <span class="k1">if</span><span class="k2">(</span>pos_x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">575</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y<span class="k3">&lt;</span><span class="k3">=</span> <span class="n">451</span><span class="k2">)</span> 
<span class="number"> 80</span>          <span class="k2">{</span>
<span class="number"> 81</span>           bQuit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 82</span>          <span class="k2">}</span>
<span class="number"> 83</span>       <span class="k2">}</span><span class="c">// end location if</span>
<span class="number"> 84</span>    <span class="k2">}</span><span class="c">// end button down</span>
<span class="number"> 85</span>
<span class="number"> 86</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 87</span>      bQuit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 88</span>
<span class="number"> 89</span><span class="k2">}</span><span class="c">// Screen While</span>
<span class="number"> 90</span>
<span class="number"> 91</span><a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>disp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 92</span><a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 93</span>
<span class="number"> 94</span><span class="k2">}</span> <span class="c">//end main()</span>
</div></div><p>

This is the game play function with the draw function.
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="c">/**********************INCLUDES ***********************/</span>
<span class="number">   2</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;string&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro5.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;allegro5/allegro_ttf.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_primitives.h&gt;</span>
<span class="number">   8</span><span class="p">#include &lt;allegro5/matches.h&gt;</span>
<span class="number">   9</span><span class="p">#include &lt;allcolor_A5.h&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;matches.h&gt;</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="c">/********************* FUNCTION DECLARE ******/</span>
<span class="number">  13</span><span class="k1">int</span> random_no<span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  14</span><span class="k1">void</span> draw_cards<span class="k2">(</span>BLOCKS<span class="k2">[</span><span class="k2">]</span>, <span class="k1">float</span>,<span class="k1">int</span>, <span class="k1">int</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span>
<span class="number">  16</span><span class="c">/********************* EXTERNALS ******/</span>
<span class="number">  17</span><span class="k1">extern</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">  18</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> queue<span class="k2">;</span>
<span class="number">  19</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> disp<span class="k2">;</span>
<span class="number">  20</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a><span class="k3">*</span> <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">;</span>
<span class="number">  21</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a><span class="k3">*</span> scr_font<span class="k2">;</span>
<span class="number">  22</span><span class="k1">extern</span> <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number">  23</span>
<span class="number">  24</span><span class="c">/******************* game_play() *****************/</span>
<span class="number">  25</span>
<span class="number">  26</span><span class="k1">bool</span> game_play<span class="k2">(</span>BLOCKS Blocks<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span>
<span class="number">  27</span><span class="k2">{</span>
<span class="number">  28</span>
<span class="number">  29</span><span class="k1">int</span> iChoiceCount <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  30</span><span class="k1">bool</span> bQuit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  31</span><span class="k1">int</span> iFirstChoice <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  32</span><span class="k1">int</span> iSecondChoice <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  33</span><span class="k1">int</span> iKey <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  34</span><span class="k1">int</span> pos_x <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span>
<span class="number">  35</span><span class="k1">int</span> pos_y <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span>
<span class="number">  36</span><span class="k1">int</span> iPlayer<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="n">0</span>,<span class="n">0</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  37</span><span class="k1">int</span> iTurn <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  38</span><span class="k1">int</span> iTurnPos <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  39</span><span class="k1">bool</span> bTurn <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  40</span>
<span class="number">  41</span><span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>bQuit<span class="k2">)</span>
<span class="number">  42</span><span class="k2">{</span>
<span class="number">  43</span>
<span class="number">  44</span>  <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>queue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number">  45</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>COLOR::BLACK<span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_CYAN, <span class="n">150</span>, <span class="n">20</span>, <span class="n">0</span>, <span class="s">"PICK A BLOCK"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  47</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_RED, <span class="n">10</span>, <span class="n">450</span>, <span class="n">0</span>, <span class="s">"Solly's Matches %i"</span>,iPlayer<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  48</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_GREEN, <span class="n">35</span>, <span class="n">480</span>, <span class="n">0</span>, <span class="s">"Luna's Matches %i"</span>,iPlayer<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>
<span class="number">  50</span>    <span class="k1">if</span><span class="k2">(</span>iTurn <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  51</span>      iTurnPos <span class="k3">=</span> <span class="n">450</span><span class="k2">;</span>
<span class="number">  52</span>    <span class="k1">if</span><span class="k2">(</span>iTurn <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  53</span>        iTurnPos <span class="k3">=</span> <span class="n">480</span><span class="k2">;</span>
<span class="number">  54</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BR_MAGENTA, <span class="n">450</span>, iTurnPos, <span class="n">0</span>, <span class="s">"&lt;---"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  55</span>
<span class="number">  56</span>
<span class="number">  57</span>    <span class="k1">switch</span><span class="k2">(</span>iChoiceCount<span class="k3">&lt;</span><span class="n">2</span><span class="k2">)</span>
<span class="number">  58</span>    <span class="k2">{</span>
<span class="number">  59</span>      <span class="k1">case</span> true:
<span class="number">  60</span>          draw_cards<span class="k2">(</span>Blocks,<span class="n">0</span>.<span class="n">0</span>,pos_x,pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  61</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number">  62</span>      <span class="k1">case</span> false:
<span class="number">  63</span>        <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> count <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>count<span class="k3">&lt;</span>CQTY<span class="k2">;</span>count<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  64</span>         <span class="k2">{</span>
<span class="number">  65</span>            <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>Blocks<span class="k2">[</span>count<span class="k2">]</span>.bMatched<span class="k2">)</span>
<span class="number">  66</span>             <span class="k2">{</span>
<span class="number">  67</span>               Blocks<span class="k2">[</span>count<span class="k2">]</span>.bFlipped <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  68</span>             <span class="k2">}</span>
<span class="number">  69</span>         <span class="k2">}</span> <span class="c">// Card Flip Cleared</span>
<span class="number">  70</span>          iChoiceCount<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number">  71</span>         <span class="k1">break</span><span class="k2">;</span>
<span class="number">  72</span>     <span class="k2">}</span> <span class="c">//end switch for iChoiceCount</span>
<span class="number">  73</span>
<span class="number">  74</span>
<span class="number">  75</span>    <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number">  76</span>  <span class="k2">{</span>
<span class="number">  77</span>      iKey <span class="k3">=</span> event.keyboard.keycode-1<span class="k2">;</span>
<span class="number">  78</span>
<span class="number">  79</span>    <span class="k1">if</span><span class="k2">(</span>event.keyboard.keycode <span class="k3">&gt;</span><span class="k3">=</span> ALLEGRO_KEY_A <span class="k3">&amp;</span><span class="k3">&amp;</span> event.keyboard.keycode <span class="k3">&lt;</span><span class="k3">=</span> ALLEGRO_KEY_X <span class="k2">)</span>
<span class="number">  80</span>     <span class="k2">{</span>
<span class="number">  81</span>       Blocks<span class="k2">[</span>iKey<span class="k2">]</span>.bFlipped <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  82</span>        <span class="k1">if</span><span class="k2">(</span>iChoiceCount <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> iFirstChoice <span class="k3">=</span> iKey<span class="k2">;</span>
<span class="number">  83</span>        <span class="k1">if</span><span class="k2">(</span>iChoiceCount <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span> iSecondChoice <span class="k3">=</span> iKey<span class="k2">;</span>
<span class="number">  84</span>        iChoiceCount<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  85</span>     <span class="k2">}</span>  <span class="c">// end if for block choice</span>
<span class="number">  86</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number">  87</span>      bQuit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  88</span>         
<span class="number">  89</span>    <span class="k1">if</span><span class="k2">(</span>iChoiceCount <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number">  90</span>     <span class="k2">{</span>
<span class="number">  91</span>       <span class="k1">if</span><span class="k2">(</span>Blocks<span class="k2">[</span>iFirstChoice<span class="k2">]</span>.iValue <span class="k3">=</span><span class="k3">=</span> Blocks<span class="k2">[</span>iSecondChoice<span class="k2">]</span>.iValue <span class="k2">)</span>
<span class="number">  92</span>       <span class="k2">{</span>
<span class="number">  93</span>        Blocks<span class="k2">[</span>iFirstChoice<span class="k2">]</span>.bMatched <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  94</span>        Blocks<span class="k2">[</span>iSecondChoice<span class="k2">]</span>.bMatched <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  95</span>              iPlayer<span class="k2">[</span>iTurn<span class="k2">]</span><span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  96</span>          bTurn <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  97</span>       <span class="k2">}</span> <span class="c">// end match if</span>
<span class="number">  98</span>
<span class="number">  99</span>       <span class="k1">switch</span><span class="k2">(</span>iTurn<span class="k2">)</span>
<span class="number"> 100</span>          <span class="k2">{</span>
<span class="number"> 101</span>             <span class="k1">case</span> <span class="n">0</span><span class="k2">:</span>
<span class="number"> 102</span>               <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>bTurn<span class="k2">)</span>
<span class="number"> 103</span>                  iTurn <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 104</span>               bTurn <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 105</span>               <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 106</span>             <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number"> 107</span>               <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>bTurn<span class="k2">)</span>
<span class="number"> 108</span>                 iTurn <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 109</span>               bTurn <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 110</span>               <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 111</span>            <span class="k2">}</span> <span class="c">// end iTurn switch</span>
<span class="number"> 112</span>     <span class="k2">}</span><span class="c">// end if iChoiceCount == 2 actions</span>
<span class="number"> 113</span>
<span class="number"> 114</span>       <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>Blocks<span class="k2">[</span>iFirstChoice<span class="k2">]</span>.bFlipped <span class="k3">&amp;</span><span class="k3">&amp;</span> Blocks<span class="k2">[</span>iSecondChoice<span class="k2">]</span>.bFlipped <span class="k2">)</span><span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>Blocks<span class="k2">[</span>iFirstChoice<span class="k2">]</span>.iValue <span class="k3">!</span><span class="k3">=</span> Blocks<span class="k2">[</span>iSecondChoice<span class="k2">]</span>.iValue <span class="k2">)</span><span class="k2">)</span>
<span class="number"> 115</span>       <span class="k2">{</span>
<span class="number"> 116</span>       draw_cards<span class="k2">(</span>Blocks,<span class="n">2</span>.<span class="n">0</span>,pos_x,pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>     <span class="k2">}</span>
<span class="number"> 118</span>   <span class="k2">}</span><span class="c">// end if event.type</span>
<span class="number"> 119</span>
<span class="number"> 120</span>     <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number"> 121</span>     <span class="k2">{</span> pos_y <span class="k3">=</span> event.mouse.y<span class="k2">;</span>
<span class="number"> 122</span>       pos_x <span class="k3">=</span> event.mouse.x<span class="k2">;</span>
<span class="number"> 123</span>     <span class="k2">}</span> <span class="c">// end mouse axis</span>
<span class="number"> 124</span>
<span class="number"> 125</span>     <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>
<span class="number"> 126</span>     <span class="k2">{</span>
<span class="number"> 127</span>         <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> count <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>count<span class="k3">&lt;</span>CQTY<span class="k2">;</span>count<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 128</span>         <span class="k2">{</span>
<span class="number"> 129</span>        <span class="k1">if</span><span class="k2">(</span>pos_x <span class="k3">&gt;</span><span class="k3">=</span> Blocks<span class="k2">[</span>count<span class="k2">]</span>.fTX <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&gt;</span><span class="k3">=</span> Blocks<span class="k2">[</span>count<span class="k2">]</span>.fTY<span class="k2">)</span>
<span class="number"> 130</span>        <span class="k2">{</span>
<span class="number"> 131</span>           <span class="k1">if</span><span class="k2">(</span>pos_x <span class="k3">&lt;</span><span class="k3">=</span> Blocks<span class="k2">[</span>count<span class="k2">]</span>.fBX <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&lt;</span><span class="k3">=</span> Blocks<span class="k2">[</span>count<span class="k2">]</span>.fBY<span class="k2">)</span>
<span class="number"> 132</span>           <span class="k2">{</span>
<span class="number"> 133</span>            Blocks<span class="k2">[</span>count<span class="k2">]</span>.bFlipped <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 134</span>            <span class="k1">if</span><span class="k2">(</span>iChoiceCount <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> iFirstChoice <span class="k3">=</span> count<span class="k2">;</span>
<span class="number"> 135</span>            <span class="k1">if</span><span class="k2">(</span>iChoiceCount <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span> iSecondChoice <span class="k3">=</span> count<span class="k2">;</span>
<span class="number"> 136</span>              iChoiceCount<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 137</span>          <span class="k2">}</span>
<span class="number"> 138</span>        <span class="k2">}</span>
<span class="number"> 139</span>         <span class="k2">}</span><span class="c">// end for</span>
<span class="number"> 140</span>      <span class="k1">if</span><span class="k2">(</span>iChoiceCount <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 141</span>      <span class="k2">{</span>
<span class="number"> 142</span>        <span class="k1">if</span><span class="k2">(</span>Blocks<span class="k2">[</span>iFirstChoice<span class="k2">]</span>.iValue <span class="k3">=</span><span class="k3">=</span> Blocks<span class="k2">[</span>iSecondChoice<span class="k2">]</span>.iValue <span class="k2">)</span>
<span class="number"> 143</span>        <span class="k2">{</span>
<span class="number"> 144</span>          Blocks<span class="k2">[</span>iFirstChoice<span class="k2">]</span>.bMatched <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 145</span>          Blocks<span class="k2">[</span>iSecondChoice<span class="k2">]</span>.bMatched <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 146</span>              iPlayer<span class="k2">[</span>iTurn<span class="k2">]</span><span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 147</span>              bTurn <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 148</span>        <span class="k2">}</span> <span class="c">// end match if</span>
<span class="number"> 149</span>
<span class="number"> 150</span>          <span class="k1">switch</span><span class="k2">(</span>iTurn<span class="k2">)</span>
<span class="number"> 151</span>          <span class="k2">{</span>
<span class="number"> 152</span>               <span class="k1">case</span> <span class="n">0</span><span class="k2">:</span>
<span class="number"> 153</span>                  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>bTurn<span class="k2">)</span>
<span class="number"> 154</span>                     iTurn <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 155</span>                  bTurn <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 156</span>                  <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 157</span>               <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number"> 158</span>                 <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>bTurn<span class="k2">)</span>
<span class="number"> 159</span>                    iTurn <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 160</span>                  bTurn <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 161</span>                  <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 162</span>             <span class="k2">}</span> <span class="c">// end iTurn switch</span>
<span class="number"> 163</span>         <span class="k2">}</span><span class="c">// end if iChoiceCount == 2 actions</span>
<span class="number"> 164</span>
<span class="number"> 165</span>      <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>Blocks<span class="k2">[</span>iFirstChoice<span class="k2">]</span>.bFlipped <span class="k3">&amp;</span><span class="k3">&amp;</span> Blocks<span class="k2">[</span>iSecondChoice<span class="k2">]</span>.bFlipped <span class="k2">)</span><span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>Blocks<span class="k2">[</span>iFirstChoice<span class="k2">]</span>.iValue <span class="k3">!</span><span class="k3">=</span> Blocks<span class="k2">[</span>iSecondChoice<span class="k2">]</span>.iValue <span class="k2">)</span><span class="k2">)</span>
<span class="number"> 166</span>      <span class="k2">{</span>
<span class="number"> 167</span>         draw_cards<span class="k2">(</span>Blocks,<span class="n">2</span>.<span class="n">0</span>,pos_x,pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 168</span>      <span class="k2">}</span>
<span class="number"> 169</span>    <span class="k2">}</span><span class="c">// end button down</span>
<span class="number"> 170</span>
<span class="number"> 171</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 172</span>      bQuit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 173</span>
<span class="number"> 174</span>    draw_cards<span class="k2">(</span>Blocks,<span class="n">0</span>.<span class="n">0</span>, pos_x,pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 175</span><span class="k2">}</span><span class="c">// end while()</span>
<span class="number"> 176</span>
<span class="number"> 177</span><span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 178</span>
<span class="number"> 179</span><span class="k2">}</span> <span class="c">//end game_play()</span>
<span class="number"> 180</span>
<span class="number"> 181</span><span class="k1">void</span> draw_cards<span class="k2">(</span>BLOCKS Blocks<span class="k2">[</span><span class="k2">]</span>,<span class="k1">float</span> fStall,<span class="k1">int</span> pos_x, <span class="k1">int</span> pos_y<span class="k2">)</span>
<span class="number"> 182</span><span class="k2">{</span>
<span class="number"> 183</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> count <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>count<span class="k3">&lt;</span>CQTY<span class="k2">;</span>count<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 184</span>    <span class="k2">{</span>
<span class="number"> 185</span>     <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>Blocks<span class="k2">[</span>count<span class="k2">]</span>.bFlipped<span class="k2">)</span>
<span class="number"> 186</span>     <span class="k2">{</span>
<span class="number"> 187</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>Blocks<span class="k2">[</span>count<span class="k2">]</span>.fTX, Blocks<span class="k2">[</span>count<span class="k2">]</span>.fTY, Blocks<span class="k2">[</span>count<span class="k2">]</span>.fBX, Blocks<span class="k2">[</span>count<span class="k2">]</span>.fBY, Blocks<span class="k2">[</span>count<span class="k2">]</span>.aBackColor<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 188</span>            <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, COLOR::BLACK, Blocks<span class="k2">[</span>count<span class="k2">]</span>.fCX,Blocks<span class="k2">[</span>count<span class="k2">]</span>.fCY, ALLEGRO_ALIGN_CENTRE, <span class="s">"%c"</span>,<span class="s">'A'</span><span class="k3">+</span>count<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 189</span>     <span class="k2">}</span><span class="c">//end if flipped</span>
<span class="number"> 190</span>     <span class="k1">else</span>
<span class="number"> 191</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>Blocks<span class="k2">[</span>count<span class="k2">]</span>.fTX, Blocks<span class="k2">[</span>count<span class="k2">]</span>.fTY, Blocks<span class="k2">[</span>count<span class="k2">]</span>.fBX, Blocks<span class="k2">[</span>count<span class="k2">]</span>.fBY, Blocks<span class="k2">[</span>count<span class="k2">]</span>.aFrontColor<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 192</span>    <span class="k2">}</span>
<span class="number"> 193</span>
<span class="number"> 194</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"> 195</span>  <a href="http://www.allegro.cc/manual/al_rest"><span class="a">al_rest</span></a><span class="k2">(</span>fStall<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 196</span><span class="k2">}</span> <span class="c">// end draw_cards()</span>
</div></div><p>

BTW, the format doesn&#39;t keep the spacing accurately.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Wed, 10 May 2023 00:47:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It looks like you’re still calling draw_blocks multiple times in the loop. You should only draw once per loop. As you are flipping the display and also using al_rest it will have adverts effects. It may not be as noticeable on windows because of the dwmflush calls/vsync etc. you should update the logic and draw/delay once per loop.</p><p>Ideally you would use a timer and only draw when the timer clicks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Wed, 10 May 2023 01:24:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;re still drawing once for every event. Think about MOUSE_AXES events. They will pile up trying to draw. There&#39;s nothing wrong with the OS or the mouse.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 10 May 2023 16:42:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks for the expertise guys, </p><p>Looking over the code, I see a circumstance where I draw twice in one loop.   I have specific conditions for each of the draw calls.  They shouldn’t all draw in a single loop.   I’ll have to read closer to see if there is a circumstance where multiple draws are active in a single loop.  Currently I have different conditions to be met for each draw.  Then I have a default should none of the previous condition be met.  I see where the default gets drawn each time through the loop regardless of the other conditions.  I need to condition it in some way too I supposed.</p><p>Here is why I put the different draw calls.   Originally I didn’t have this.  As a person chooses the first card, it stays flipped because of a bool variable change.  However, when the second card / block is chosen that doesn’t match, all the flip variables are zeroed out.  This happens so fast that you don’t get to see your second card.   I had to add a rest of 2.0 sec but only when two cards have been chosen and don’t match. </p><p>In any case, I’ll rethink the code flow and try to work off of a timer.  Thanks again.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Wed, 10 May 2023 18:12:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The typical event loop is driven by a timer or vsync. Why don&#39;t you just try it first and see how you like it?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 10 May 2023 19:05:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I agree Edgar. I&#39;ll look into a timer.  Obviously you guys know a lot more about it than I do.  I&#39;ll keep you posted.  I&#39;ve also being thinking of how to reduce the draw call to a single call from the timer event. Instead of various locations. That may help as well.    Thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Wed, 10 May 2023 23:12:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Simple loop system with input handling, logic processing and output.</p><p>draw_cards would go in the draw loop ONCE. If you need a delay timer to show the face before turning over, then add another variable just for that. Set it to some arbitrary time that counts down every logic tick. When zero flip the cards back over.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">bool</span> shutdown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  2</span><span class="k1">bool</span> dirty <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  3</span><span class="k1">int32_t</span> counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">int32_t</span> loop<span class="k2">(</span><span class="k2">)</span>
<span class="number">  6</span><span class="k2">{</span>
<span class="number">  7</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>shutdown<span class="k2">)</span>
<span class="number">  8</span>  <span class="k2">{</span>
<span class="number">  9</span>    input<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span>    <span class="k1">while</span> <span class="k2">(</span>counter <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 12</span>    <span class="k2">{</span>
<span class="number"> 13</span>      logic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>      <span class="k3">-</span><span class="k3">-</span>counter<span class="k2">;</span>
<span class="number"> 15</span>    <span class="k2">}</span>
<span class="number"> 16</span>
<span class="number"> 17</span>    <span class="k1">if</span> <span class="k2">(</span>dirty<span class="k2">)</span>
<span class="number"> 18</span>    <span class="k2">{</span>
<span class="number"> 19</span>      draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>      dirty <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 21</span>    <span class="k2">}</span>
<span class="number"> 22</span>
<span class="number"> 23</span>    <a href="http://www.allegro.cc/manual/al_rest"><span class="a">al_rest</span></a><span class="k2">(</span><span class="n">0</span>.<span class="n">01</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>  <span class="k2">}</span>
<span class="number"> 25</span>
<span class="number"> 26</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 27</span><span class="k2">}</span>
<span class="number"> 28</span>
<span class="number"> 29</span><span class="k1">void</span> draw<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 30</span><span class="k2">{</span>
<span class="number"> 31</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">64</span>, <span class="n">0</span>, <span class="n">64</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>
<span class="number"> 33</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"> 34</span><span class="k2">}</span>
<span class="number"> 35</span>
<span class="number"> 36</span><span class="c">// process current input status</span>
<span class="number"> 37</span><span class="k1">void</span> logic<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 38</span><span class="k2">{</span>
<span class="number"> 39</span>
<span class="number"> 40</span>  dirty <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 41</span><span class="k2">}</span>
<span class="number"> 42</span>
<span class="number"> 43</span><span class="k1">void</span> input<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 44</span><span class="k2">{</span>
<span class="number"> 45</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number"> 46</span>
<span class="number"> 47</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>al_event_queue_is_empty<span class="k2">(</span>queue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 48</span>  <span class="k2">{</span>
<span class="number"> 49</span>    <a href="http://www.allegro.cc/manual/al_get_next_event"><span class="a">al_get_next_event</span></a><span class="k2">(</span>queue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 50</span>
<span class="number"> 51</span>    <span class="k1">switch</span> <span class="k2">(</span>event.type<span class="k2">)</span>
<span class="number"> 52</span>    <span class="k2">{</span>
<span class="number"> 53</span>    <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number"> 54</span>    <span class="k2">{</span>
<span class="number"> 55</span>      <span class="k3">+</span><span class="k3">+</span>counter<span class="k2">;</span>
<span class="number"> 56</span>    <span class="k2">}</span> <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 57</span>
<span class="number"> 58</span>    <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_CLOSE:
<span class="number"> 59</span>    <span class="k2">{</span>
<span class="number"> 60</span>      shutdown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 61</span>    <span class="k2">}</span> <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 62</span>    <span class="k2">}</span>
<span class="number"> 63</span>  <span class="k2">}</span>
<span class="number"> 64</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Thu, 11 May 2023 02:01:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can also achieve it by handling the logic when you get an ALLEGRO_EVENT_TIMER. Remember to start the timer. It won&#39;t start itself.<br />\
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 11 May 2023 20:30:44 +0000</pubDate>
	</item>
</rss>
