<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>readkey + bool = Opening inventary</title>
		<link>http://www.allegro.cc/forums/view/560357</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 26 Jan 2006 04:12:29 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>void teclado()<br />{<br />val = readkey();<br />      if (val != old_val)<br />      {       <br />              if ((val &gt;&gt; 8) == KEY_SPACE) <br />                {<br />                modo = 1 - modo;<br />                pillartecla();     <br />               }           <br />       }       <br />      old_val=val;<br />}  <br />END_OF_FUNCTION(teclado);</p><p>bool pillartecla()<br />{</p><p>      if (modo == 1)<br />      { return true; }<br />      else   <br />      { return false; }<br />             <br />           <br />      <br />}  <br />END_OF_FUNCTION(pillartecla);</p><p>Looks fine and nice, suposedly, theres a function something like </p><p>if (pillartecla == true)<br />{openinventary()}<br />else {closeinventary}</p><p>What all thaht is suposed to do is open the inventary when the player presses sapce_bar and closes it when he prees it again. As im only groping arround in the dark here, i&#39;d apreciate any and all help you can give me, as it&#39;s not working. Especially if someone could tell me how yo use the readkey() properly and were to call the teclado(). I get a feeling inneed to call it in a while or a for but im not shure.<br />Any help for a beginer? </p><p>Cheers
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jaime barrachina)</author>
		<pubDate>Thu, 19 Jan 2006 04:20:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><pre>First, use code tags, putting &lt;code&gt; and &lt;/code&gt; surrounding your code so that it is &quot;codified&quot;.</pre><p>

Second, you don&#39;t need to use END_OF_FUNCTION in all functions, only in those functions that are going to be called from inside a timer.</p><p>Third, the game should look something like this (this may not compile!):</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#include &lt;allegro.h&gt;</span>

<span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
    <span class="k1">int</span> quit <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>

    <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
    <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>

    <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>quit<span class="k2">)</span> <span class="k2">{</span>
        teclado<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
        dibujo<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k2">}</span>

    <a href="http://www.allegro.cc/manual/allegro_exit" target="_blank"><span class="a">allegro_exit</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
<a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span>
</pre></div></div><p>

You call <i>teclado</i> to poll the keyboard, and then call <i>dibujo</i> to draw on screen.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Thu, 19 Jan 2006 04:28:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>And using global variables isn&#39;t that good.<br />Make function with arguments.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Thu, 19 Jan 2006 13:47:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I know that using globals isn&#39;t a good thing, and I dont use them because people have told me to make functions with arguments... But why exactly is it bad?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ceagon Xylas)</author>
		<pubDate>Thu, 19 Jan 2006 13:50:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
But why exactly is it bad?
</p></div></div><p>
Couple of reasons can be red from here:<br /><a href="http://www.bic.mni.mcgill.ca/~david/volume_io/section2_4_1.html">http://www.bic.mni.mcgill.ca/~david/volume_io/section2_4_1.html</a><br /><a href="http://en.wikipedia.org/wiki/Global_variable">http://en.wikipedia.org/wiki/Global_variable</a></p><p>The thing about multithreading will become more and more important as multicore CPU&#39;s are becoming more widespread
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HoHo)</author>
		<pubDate>Thu, 19 Jan 2006 14:11:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
What all thaht is suposed to do is open the inventary when the player presses sapce_bar and closes it when he prees it again.
</p></div></div><p>

This is how I usually handle a situation like that.</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">bool</span> key_space<span class="k3">=</span><span class="k1">false</span><span class="k2">;</span>
<span class="k1">void</span> input<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
   <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>key_space<span class="k2">)</span>
   <span class="k2">{</span>
      openInventory<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
      key_space <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
   <span class="k2">}</span>
   <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> key_space<span class="k2">)</span>
   <span class="k2">{</span>
      closeInventory<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
      key_space <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
   <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Rick)</author>
		<pubDate>Thu, 19 Jan 2006 17:40:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>1000 thanks to everyone who&#39;s replied and excuse me for my lousy gramar, please, i was half asleep when i wrote the first post. <br />I was wondering if anyone could explain Rick&#39;s code in a &quot;for idiots&quot; kind of way, because it looks just like what i was looking for but somehow i dont seem able to cram it into my own code and make it work...</p><p>Thanks  again everyone.<br />Cheers <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jaime barrachina)</author>
		<pubDate>Fri, 20 Jan 2006 02:38:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hopefully this&#39;ll clear it up for you:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">// make key_space false so pressing space will open the inventory and not close it</span></td></tr><tr><td class="number">2</td><td><span class="k1">bool</span> key_space<span class="k3">=</span><span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td><span class="k1">void</span> input<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></td></tr><tr><td class="number">5</td><td>   <span class="c">// if the space bar is pressed and key_space is false (meaning inventory will be closed)</span></td></tr><tr><td class="number">6</td><td>   <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>key_space<span class="k2">)</span></td></tr><tr><td class="number">7</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>      openInventory<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// open the inventory</span></td></tr><tr><td class="number">9</td><td>      key_space <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="c">// toggle key_space to true so you could close inventory</span></td></tr><tr><td class="number">10</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">11</td><td>   <span class="c">// else if the space bar is pressed and key_space is true (meaning inventory will be open)</span></td></tr><tr><td class="number">12</td><td>   <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> key_space<span class="k2">)</span> </td></tr><tr><td class="number">13</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>      closeInventory<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// close inventory</span></td></tr><tr><td class="number">15</td><td>      key_space <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="c">// toggle key_space to false so you could open the inventory</span></td></tr><tr><td class="number">16</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">17</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jeff Bernard)</author>
		<pubDate>Fri, 20 Jan 2006 04:21:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Basically if you just use key[KEY_SPACE] to open the inventory it will run the code inside it on every loop, since if you hold it down it evaluates to true. Since we want a toggle of sorts, that is why we add the boolean value.</p><p>So I push the space bar, it goes in and opens the inventory, now if I hold the space bar it won&#39;t keep going in and opening the inventory. But actually thinking about it, you might not want what I posted. With that code if you let go on space the inventory closes. If you want to toggle it with the space bar you will have to put something inside the first if statement to see if it&#39;s open or closed and act on it that way.</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">bool</span> key_space<span class="k3">=</span><span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td><span class="k1">void</span> input<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">3</td><td><span class="k2">{</span></td></tr><tr><td class="number">4</td><td>   <span class="c">// if the space bar is pressed and key_space is false (meaning inventory will be closed)</span></td></tr><tr><td class="number">5</td><td>   <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>key_space<span class="k2">)</span></td></tr><tr><td class="number">6</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">7</td><td>      <span class="k1">if</span><span class="k2">(</span>inventoryIsOpen<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">8</td><td>         closeInventory<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">9</td><td>      <span class="k1">else</span></td></tr><tr><td class="number">10</td><td>          openInventory<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// open the inventory</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>      key_space <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="c">// toggle key_space to true so you could close inventory</span></td></tr><tr><td class="number">13</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">14</td><td>   <span class="c">// else if the space bar is pressed and key_space is true (meaning inventory will be open)</span></td></tr><tr><td class="number">15</td><td>   <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> key_space<span class="k2">)</span> </td></tr><tr><td class="number">16</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">17</td><td>      key_space <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="c">// toggle key_space to false so you could open the inventory</span></td></tr><tr><td class="number">18</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">19</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

That will toggle inventory based on open or closed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Rick)</author>
		<pubDate>Fri, 20 Jan 2006 04:31:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Goin&#39; a little off-topic.</p><p>In C++ (don&#39;t know if that&#39;d work in C as well), a way to easily remove the global variable would be the following:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">void</span> input<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>   <span class="k1">static</span> <span class="k1">bool</span> key_space<span class="k3">=</span><span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td>   <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>key_space<span class="k2">)</span></td></tr><tr><td class="number">6</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">7</td><td>      openInventory<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>      key_space <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">10</td><td>   <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> key_space<span class="k2">)</span></td></tr><tr><td class="number">11</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">12</td><td>      closeInventory<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>      key_space <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">15</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Indeterminatus)</author>
		<pubDate>Fri, 20 Jan 2006 04:52:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Good point, although if I was doing this, input() would be in a Game class and key_space would be a member variable.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Rick)</author>
		<pubDate>Fri, 20 Jan 2006 04:54:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Rick, I believe the second code you posted would do just what the code I posted would do. I changed your original just a bit:
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">// I changed this line:</span>
<span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> key_space<span class="k2">)</span>

<span class="c">// to this:</span>
<span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> key_space<span class="k2">)</span>
</pre></div></div><p>
That way you don&#39;t need another function to determine if inventory is open, you can just use the boolean.</p><p>Or, since the input() function will most likely be looped, to make sure it doesn&#39;t run closeInventory() right away, you could just add this in: while (key[KEY_SPACE]) { rest(1); }<br />like so: (see the edit, I rewrote it better)</p><p>EDIT-- I&#39;m bored, have another version of the code. This one&#39;s the best (and conforms to not using a global):
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">// in your main or whatever, declare the inventory's open/closed status:</span></td></tr><tr><td class="number">2</td><td><span class="k1">bool</span> inventoryStatus <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td><span class="c">//.. this uses false as closed and true as open</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="c">// in game loop somewheres:</span></td></tr><tr><td class="number">6</td><td><span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">7</td><td>    inventoryStatus <span class="k3">=</span> input<span class="k2">(</span>inventoryStatus<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td><span class="c">//..</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="k1">bool</span> input<span class="k2">(</span><span class="k1">bool</span> invOpen<span class="k2">)</span></td></tr><tr><td class="number">11</td><td><span class="k2">{</span></td></tr><tr><td class="number">12</td><td>   <span class="k1">while</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span> <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span> <span class="c">// wait until space bar is let up</span></td></tr><tr><td class="number">13</td><td>   <span class="k1">if</span> <span class="k2">(</span>invOpen<span class="k2">)</span>         <span class="c">// if the inventory is open</span></td></tr><tr><td class="number">14</td><td>      closeInventory<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// close it</span></td></tr><tr><td class="number">15</td><td>   <span class="k1">else</span>                 <span class="c">// otherwise, it is closed</span></td></tr><tr><td class="number">16</td><td>      openInventory<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">// so open it!</span></td></tr><tr><td class="number">17</td><td>   <span class="k1">return</span> <span class="k3">!</span>invOpen<span class="k2">;</span>     <span class="c">// toggle inventoryStatus</span></td></tr><tr><td class="number">18</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jeff Bernard)</author>
		<pubDate>Fri, 20 Jan 2006 05:12:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That would actually freeze the entire game if I held the space bar. I don&#39;t like that solution.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Rick)</author>
		<pubDate>Fri, 20 Jan 2006 14:28:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The core of the problem is that you need to convert states into state changes over time. To do this, you need to keep a copy of the previous state around, and compare the current one. I prefer doing this for the entire key array, so I only have to implement it once:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">// in the input class, or the game class, you choose</span></td></tr><tr><td class="number">2</td><td><span class="k1">int</span> old_key<span class="k2">[</span>KEY_MAX<span class="k2">]</span><span class="k2">;</span> <span class="c">// initialize this to all-zeroes</span></td></tr><tr><td class="number">3</td><td><span class="k1">int</span> delta_key<span class="k2">[</span>KEY_MAX<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="k1">void</span> tick_keyboard<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">6</td><td>  <a href="http://www.allegro.cc/manual/poll_keyboard" target="_blank"><span class="a">poll_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// may or may not need this</span></td></tr><tr><td class="number">7</td><td>  <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> KEY_MAX<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k3">&lt;</span>i&gt; <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>old_key<span class="k3">&lt;</span>i&gt;<span class="k2">)</span></td></tr><tr><td class="number">9</td><td>      delta_key<span class="k3">&lt;</span>i&gt; <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> <span class="c">// press</span></td></tr><tr><td class="number">10</td><td>    <span class="k1">else</span></td></tr><tr><td class="number">11</td><td>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k3">&lt;</span>i&gt; <span class="k3">&amp;</span><span class="k3">&amp;</span> old_key<span class="k3">&lt;</span>i&gt;<span class="k2">)</span></td></tr><tr><td class="number">12</td><td>      delta_key<span class="k3">&lt;</span>i&gt; <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span> <span class="c">// release</span></td></tr><tr><td class="number">13</td><td>    <span class="k1">else</span></td></tr><tr><td class="number">14</td><td>      delta_key<span class="k3">&lt;</span>i&gt; <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>    old_key<span class="k3">&lt;</span>i&gt; <span class="k3">=</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k3">&lt;</span>i&gt;<span class="k2">;</span></td></tr><tr><td class="number">16</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">17</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
Call tick_keyboard() once at the start of the input function. If delta_key[KEY_SPACE] is 1, toggle the inventory state (inv_open = !inv_open).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Fri, 20 Jan 2006 15:59:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Txs everyone for their help, really apreciate it people <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> Problem is more or less solved now. Cheers
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jaime barrachina)</author>
		<pubDate>Thu, 26 Jan 2006 04:12:29 +0000</pubDate>
	</item>
</rss>
