<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Problem with keys</title>
		<link>http://www.allegro.cc/forums/view/590686</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 01 Apr 2007 07:57:14 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi all.4 days ago i&#39;ve begin to program a fight game.<br />Now i&#39;ve finish and i&#39;m testing it.<br />I&#39;ve found a bug in the menu for select caracter.<br />The menu&#39; appear but when i press right or left key the game crash<br />This&#39;s the code:</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> movmenu<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">if</span><span class="k2">(</span>finetutto<span class="k3">=</span><span class="n">1</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>                    </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_RIGHT<span class="k2">]</span><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>                        <span class="k1">if</span> <span class="k2">(</span>xsel<span class="k3">&lt;</span>xlimdes<span class="k2">)</span></td></tr><tr><td class="number">9</td><td>                        xsel<span class="k3">=</span>xsel<span class="k3">+</span><span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>                         <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>                            </td></tr><tr><td class="number">12</td><td>                               </td></tr><tr><td class="number">13</td><td>                               <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="n">1</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>                                         <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x1,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>                                         <span class="c">//sostituirlo manualmente</span></td></tr><tr><td class="number">17</td><td>                               <span class="k2">}</span></td></tr><tr><td class="number">18</td><td>                               <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">2</span><span class="k2">)</span></td></tr><tr><td class="number">19</td><td>                               <span class="k2">{</span></td></tr><tr><td class="number">20</td><td>                                         <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x2,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>                               <span class="k2">}</span></td></tr><tr><td class="number">22</td><td>                               <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">3</span><span class="k2">)</span></td></tr><tr><td class="number">23</td><td>                               <span class="k2">{</span></td></tr><tr><td class="number">24</td><td>                                         <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x3,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>                                        </td></tr><tr><td class="number">26</td><td>                                       </td></tr><tr><td class="number">27</td><td>                               <span class="k2">}</span></td></tr><tr><td class="number">28</td><td>                               <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">4</span><span class="k2">)</span></td></tr><tr><td class="number">29</td><td>                               <span class="k2">{</span></td></tr><tr><td class="number">30</td><td>                                         <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x4,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>                                      </td></tr><tr><td class="number">32</td><td>                                     </td></tr><tr><td class="number">33</td><td>                               <span class="k2">}</span></td></tr><tr><td class="number">34</td><td>                               <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">5</span><span class="k2">)</span></td></tr><tr><td class="number">35</td><td>                               <span class="k2">{</span></td></tr><tr><td class="number">36</td><td>                                         <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x5,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>                                        </td></tr><tr><td class="number">38</td><td>                                         </td></tr><tr><td class="number">39</td><td>                         <span class="k2">}</span></td></tr><tr><td class="number">40</td><td>               <span class="k2">}</span>         </td></tr><tr><td class="number">41</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">42</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_LEFT<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">43</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">44</td><td>                      <span class="k1">if</span><span class="k2">(</span>xsel&gt;xlimsin<span class="k2">)</span></td></tr><tr><td class="number">45</td><td>                      xsel<span class="k3">=</span>xsel-1<span class="k2">;</span></td></tr><tr><td class="number">46</td><td>                      <span class="k2">{</span></td></tr><tr><td class="number">47</td><td>                             <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">48</td><td>                               <span class="k2">{</span></td></tr><tr><td class="number">49</td><td>                                         <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x1,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>                                       </td></tr><tr><td class="number">51</td><td>                                     </td></tr><tr><td class="number">52</td><td>                               <span class="k2">}</span></td></tr><tr><td class="number">53</td><td>                               <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">2</span><span class="k2">)</span></td></tr><tr><td class="number">54</td><td>                               <span class="k2">{</span></td></tr><tr><td class="number">55</td><td>                                         <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x2,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>                                   </td></tr><tr><td class="number">57</td><td>                                        </td></tr><tr><td class="number">58</td><td>                               <span class="k2">}</span></td></tr><tr><td class="number">59</td><td>                               <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">3</span><span class="k2">)</span></td></tr><tr><td class="number">60</td><td>                               <span class="k2">{</span></td></tr><tr><td class="number">61</td><td>                                         <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x3,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">62</td><td>                                 </td></tr><tr><td class="number">63</td><td>                                        </td></tr><tr><td class="number">64</td><td>                               <span class="k2">}</span></td></tr><tr><td class="number">65</td><td>                               <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">4</span><span class="k2">)</span></td></tr><tr><td class="number">66</td><td>                               <span class="k2">{</span></td></tr><tr><td class="number">67</td><td>                                         <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x4,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>                                  </td></tr><tr><td class="number">69</td><td>                                         </td></tr><tr><td class="number">70</td><td>                               <span class="k2">}</span></td></tr><tr><td class="number">71</td><td>                               <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">5</span><span class="k2">)</span></td></tr><tr><td class="number">72</td><td>                               <span class="k2">{</span></td></tr><tr><td class="number">73</td><td>                                         <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x5,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>                                  </td></tr><tr><td class="number">75</td><td>                                       </td></tr><tr><td class="number">76</td><td>                               <span class="k2">}</span></td></tr><tr><td class="number">77</td><td>                      <span class="k2">}</span></td></tr><tr><td class="number">78</td><td>           <span class="k2">}</span></td></tr><tr><td class="number">79</td><td>     <span class="k2">}</span> </td></tr><tr><td class="number">80</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
xsel=this&#39;s for cech what caracter is now &quot;selected&quot;<br />xlimdes=it&#39;s the max value xsel can be take<br />xlimsin=it&#39;s the min value xsel can be take<br />imgsel=the sprite of the &quot;selection image&quot;<br />yselmen=the y coordinate of the sprite<br />x1,x2,x3,x4,x5=the x coordinates of the sprite<br />finetutto=a var tell &quot;movmenu&quot; can&#39;t be use ingame.</p><p>Where&#39;s the problem?<br />Really thanks.<br />Ps:sorry for bad english.:-X
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Allfreeware)</author>
		<pubDate>Fri, 23 Mar 2007 23:15:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Where&#39;s the problem?
</p></div></div><p>
I don&#39;t think it&#39;s in the code you posted, unless imgsel or buf is messed up somehow.  Just because you press left or right causes a crash doesn&#39;t mean that the problem is right there.  Have you tried figuring out exactly where it crashes using a debugger?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Onewing)</author>
		<pubDate>Fri, 23 Mar 2007 23:18:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;ve reason.The problem is the bmp,i&#39;ve save it at 8 color and so allegro haven&#39;t read it.<br />But now,I can see the selection image,but i can&#39;t go over the first player,if i push right the img appear at the first player and if i relese it the img disappear and if i push again the right button the img appear always at the first player.:o<br />Can help me?<br />Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Allfreeware)</author>
		<pubDate>Fri, 23 Mar 2007 23:59:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You should show us the code where imgsel is updated. Crashes are usually related to drawing null BITMAP objects, or drawing objects which aren&#39;t BITMAPs.</p><p>Also, please tell us if you&#39;re using datafiles or not.</p><p>--- Kris Asick (Gemini)<br />--- <a href="http://www.pixelships.com">http://www.pixelships.com</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Sat, 24 Mar 2007 03:49:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now i&#39;ve resolve the problem with this code,but now the img remain in the screen at the first player and i can&#39;t move it...:o<br />No,i&#39;m not using a .dat file.</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> visualsprite<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">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="n">1</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>               <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x1,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>               clear<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>              <span class="c">//sostituirlo manualmente</span></td></tr><tr><td class="number">8</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">9</td><td>     <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">2</span><span class="k2">)</span></td></tr><tr><td class="number">10</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>                <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x2,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">13</td><td>     <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">3</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>                <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x3,yselmen<span class="k2">)</span><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="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">4</span><span class="k2">)</span></td></tr><tr><td class="number">18</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">19</td><td>                <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x4,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">21</td><td>     <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">5</span><span class="k2">)</span></td></tr><tr><td class="number">22</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">23</td><td>                <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x5,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">25</td><td><span class="k2">}</span></td></tr><tr><td class="number">26</td><td><span class="k1">void</span> incremento<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">27</td><td><span class="k2">{</span></td></tr><tr><td class="number">28</td><td>     xsel<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>     visualsprite<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td><span class="k2">}</span></td></tr><tr><td class="number">31</td><td><span class="k1">void</span> decremento<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">32</td><td><span class="k2">{</span></td></tr><tr><td class="number">33</td><td>     xsel--<span class="k2">;</span></td></tr><tr><td class="number">34</td><td>     visualsprite<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td><span class="k2">}</span></td></tr><tr><td class="number">36</td><td><span class="k1">void</span> movmenu<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">37</td><td><span class="k2">{</span></td></tr><tr><td class="number">38</td><td>     <span class="k1">if</span><span class="k2">(</span>finetutto<span class="k3">=</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">39</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">40</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_RIGHT<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">41</td><td>                    <span class="k2">{</span></td></tr><tr><td class="number">42</td><td>                                      <span class="k1">if</span> <span class="k2">(</span>xsel<span class="k3">&lt;</span><span class="k3">=</span>xlimdes<span class="k2">)</span></td></tr><tr><td class="number">43</td><td>                                      incremento<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>                    <span class="k2">}</span></td></tr><tr><td class="number">45</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_LEFT<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">46</td><td>                    <span class="k2">{</span></td></tr><tr><td class="number">47</td><td>                                     <span class="k1">if</span><span class="k2">(</span>xsel&gt;<span class="k3">=</span>xlimdes<span class="k2">)</span></td></tr><tr><td class="number">48</td><td>                                     decremento<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>                    <span class="k2">}</span></td></tr><tr><td class="number">50</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">51</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Allfreeware)</author>
		<pubDate>Sat, 24 Mar 2007 18:22:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Allfreeware said:</div><div class="quote"><p>
<span class="source-code"><span class="k1">if</span><span class="k2">(</span>finetutto<span class="k3">=</span><span class="n">1</span><span class="k2">)</span></span>
</p></div></div><p>

I&#39;m assuming the above variable is an integer. The equals sign (=) is an assignment operator (unless you&#39;ve overloaded it, but it&#39;s impossible to tell from  the code you&#39;ve given), which means that you assign 1 to finetutto and evaluate it as a boolean conditional.</p><div class="quote_container"><div class="title">Allfreeware said:</div><div class="quote"><p>
<span class="source-code"><span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="n">1</span><span class="k2">)</span></span>
</p></div></div><p>

Same thing here. I&#39;m pretty sure the above statements will always be true. To check if a value is equal to another one make sure you use the comparison operator (==).</p><p>Perhaps you manually entered the code and forgot an equals sign? This is where copy/paste is your friend: it&#39;s faster and it makes sure we see the exact code you&#39;re having problems with. It might also help to see a more complete picture (i.e. show more or all of the code).</p><p>In the case of xsel, you then go on to check if it equals 2, 3, 4, and 5. Unless it is being changed in a separate thread you should know as soon as the first is true that the others have to be false. For this reason, it appears that you should be using an else...if ladder:</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">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">1</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>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x1,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>    clear<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>    <span class="c">//sostituirlo manualmente</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">else</span> <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">2</span><span class="k2">)</span></td></tr><tr><td class="number">8</td><td><span class="k2">{</span></td></tr><tr><td class="number">9</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x2,yselmen<span class="k2">)</span><span class="k2">;</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="k1">else</span> <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">3</span><span class="k2">)</span></td></tr><tr><td class="number">12</td><td><span class="k2">{</span></td></tr><tr><td class="number">13</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x3,yselmen<span class="k2">)</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="k1">else</span> <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">4</span><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>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x4,yselmen<span class="k2">)</span><span class="k2">;</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="k1">else</span> <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">5</span><span class="k2">)</span></td></tr><tr><td class="number">20</td><td><span class="k2">{</span></td></tr><tr><td class="number">21</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x5,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Or even cleaner is a switch statement:</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">switch</span><span class="k2">(</span>xsel<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">case</span> <span class="n">1</span><span class="k2">:</span></td></tr><tr><td class="number">4</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x1,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>    clear<span class="k2">;</span></td></tr><tr><td class="number">6</td><td>    <span class="c">//sostituirlo manualmente</span></td></tr><tr><td class="number">7</td><td>    <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td><span class="k1">case</span> <span class="n">2</span><span class="k2">:</span></td></tr><tr><td class="number">9</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x2,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>    <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td><span class="k1">case</span> <span class="n">3</span><span class="k2">:</span></td></tr><tr><td class="number">12</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x3,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>    <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td><span class="k1">case</span> <span class="n">4</span><span class="k2">:</span></td></tr><tr><td class="number">15</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x4,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td><span class="k1">case</span> <span class="n">5</span><span class="k2">:</span></td></tr><tr><td class="number">18</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x5,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Note that an else...if ladder or switch statement are only applicable if xsel doesn&#39;t change during these checks.</p><p>Sorry, I assume English isn&#39;t your first language? I&#39;m having trouble understanding... It would help if you posted all the code (assuming it&#39;s not too much) and any error messages would also help. Perhaps if you run from the command-line you will get text output from Allegro?</p><p>Try to explain what each block of code does with comments. Especially try to explain what each variable represents and what type it is. More descriptive variable names would also help.</p><p>Also, there doesn&#39;t seem to be anything that prevents xsel from going below 1 or above 5. If it&#39;s out of range should it be moved back into range or do you just want to ignore it??
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Tue, 27 Mar 2007 21:57:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Wow!Really Really thanks for the help.<br />I&#39;ve change my code with it:
</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> visualsprite<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">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">1</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>                <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x1,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>                <span class="c">//sostituirlo manualmente</span></td></tr><tr><td class="number">7</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">8</td><td>     <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">2</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>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x2,yselmen<span class="k2">)</span><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">else</span> <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">3</span><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>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x3,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">16</td><td>     <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">4</span><span class="k2">)</span></td></tr><tr><td class="number">17</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">18</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x4,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">20</td><td>     <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">5</span><span class="k2">)</span></td></tr><tr><td class="number">21</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">22</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buf,imgsel,x5,yselmen<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">24</td><td><span class="k2">}</span></td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td><span class="k1">void</span> movmenu<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">27</td><td><span class="k2">{</span></td></tr><tr><td class="number">28</td><td>     <span class="k1">if</span><span class="k2">(</span>finetutto<span class="k3">=</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">29</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">30</td><td>                    </td></tr><tr><td class="number">31</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_RIGHT<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">32</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">33</td><td>                        <span class="k1">if</span> <span class="k2">(</span>xsel<span class="k3">&lt;</span>xlimdes<span class="k2">)</span></td></tr><tr><td class="number">34</td><td>                        xsel<span class="k3">=</span>xsel<span class="k3">+</span><span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>                         <span class="k2">{</span></td></tr><tr><td class="number">36</td><td>                                    visualsprite<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>                          </td></tr><tr><td class="number">37</td><td>                         <span class="k2">}</span></td></tr><tr><td class="number">38</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">39</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_LEFT<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">40</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">41</td><td>                      <span class="k1">if</span><span class="k2">(</span>xsel&gt;xlimsin<span class="k2">)</span></td></tr><tr><td class="number">42</td><td>                      xsel<span class="k3">=</span>xsel-1<span class="k2">;</span></td></tr><tr><td class="number">43</td><td>                      <span class="k2">{</span></td></tr><tr><td class="number">44</td><td>                             <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">=</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">45</td><td>                               <span class="k2">{</span></td></tr><tr><td class="number">46</td><td>                                        visualsprite<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>                               <span class="k2">}</span></td></tr><tr><td class="number">48</td><td>                      <span class="k2">}</span></td></tr><tr><td class="number">49</td><td>                      <span class="k2">}</span></td></tr><tr><td class="number">50</td><td>     <span class="k2">}</span> </td></tr><tr><td class="number">51</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
And now the menù work fine;)<br />Thanks for the tip (i think thet&#39;s the correct work:-X)<br />I think i will have other problem with this game...;D<br />Ps:yes,i&#39;m not english,i&#39;m italian.<br />Thanks for the help
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Allfreeware)</author>
		<pubDate>Tue, 27 Mar 2007 23:48:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">bamccaig said:</div><div class="quote"><p>
Also, there doesn&#39;t seem to be anything that prevents xsel from going below 1 or above 5. If it&#39;s out of range should it be moved back into range or do you just want to ignore it??
</p></div></div><p>

</p><div class="quote_container"><div class="title">Allfreeware said:</div><div class="quote"><p>

     if (xsel&lt;=xlimdes)<br />     incremento();
</p></div></div><p>

and...</p><div class="quote_container"><div class="title">Allfreeware said:</div><div class="quote"><p>

     if(xsel&gt;=xlimdes)<br />     decremento();
</p></div></div><p>

Those prevent it from going out of range.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Black)</author>
		<pubDate>Thu, 29 Mar 2007 21:10:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Possumdude0 said:</div><div class="quote"><p>
Those prevent it from going out of range.
</p></div></div><p>

Guess I missed that...</p><p>If you ask me the check should be applied inside the function that accesses the variable. Those functions could be called elsewhere and if you forget to implement the check you could again go out of range. On top of that, if you implement the check in the increment/decrement functions it would eliminate a redundant check before calling the function (assuming the function could at some point be called elsewhere).</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> incremento<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="c">/*</span></td></tr><tr><td class="number">4</td><td><span class="c">     *  Optionally include code that will move it back in range. Otherwise, you'll</span></td></tr><tr><td class="number">5</td><td><span class="c">     *  have to check for &gt; in the return condition.</span></td></tr><tr><td class="number">6</td><td><span class="c">     */</span></td></tr><tr><td class="number">7</td><td>    <span class="k1">if</span><span class="k2">(</span>xsel&gt;xlimdes<span class="k2">)</span> <span class="c">// Why doesn't the &gt; operator highlight?</span></td></tr><tr><td class="number">8</td><td>        xsel <span class="k3">=</span> xlimdes<span class="k2">;</span> <span class="c">// Why do semi-colons look like commas in Firefox!?</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td>    <span class="c">// If at the limit return without change.</span></td></tr><tr><td class="number">11</td><td>    <span class="k1">if</span><span class="k2">(</span>xsel <span class="k3">=</span><span class="k3">=</span> xlimdes<span class="k2">)</span></td></tr><tr><td class="number">12</td><td>        <span class="k1">return</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td>    <span class="c">// Increment.</span></td></tr><tr><td class="number">15</td><td>    xsel<span class="k3">+</span><span class="k3">+</span><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>&#160;</td></tr><tr><td class="number">18</td><td><span class="k1">void</span> decremento<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">19</td><td><span class="k2">{</span></td></tr><tr><td class="number">20</td><td>    <span class="c">/*</span></td></tr><tr><td class="number">21</td><td><span class="c">     *  Optionally include code that will move it back in range. Otherwise, you'll</span></td></tr><tr><td class="number">22</td><td><span class="c">     *  have to check for &lt; in the return condition.</span></td></tr><tr><td class="number">23</td><td><span class="c">     */</span></td></tr><tr><td class="number">24</td><td>    <span class="k1">if</span><span class="k2">(</span>xsel<span class="k3">&lt;</span>xlimdes<span class="k2">)</span></td></tr><tr><td class="number">25</td><td>        xsel <span class="k3">=</span> xlimdes<span class="k2">;</span></td></tr><tr><td class="number">26</td><td>&#160;</td></tr><tr><td class="number">27</td><td>    <span class="c">// If at the limit return without change.</span></td></tr><tr><td class="number">28</td><td>    <span class="k1">if</span><span class="k2">(</span>xsel <span class="k3">=</span><span class="k3">=</span> xlimdes<span class="k2">)</span></td></tr><tr><td class="number">29</td><td>        <span class="k1">return</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>&#160;</td></tr><tr><td class="number">31</td><td>    <span class="c">// Decrement.</span></td></tr><tr><td class="number">32</td><td>    xsel--<span class="k2">;</span> <span class="c">// Why doesn't the -- operator highlight?</span></td></tr><tr><td class="number">33</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

It would also clean up the game logic a bit.</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> movmenu<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
    <span class="k1">if</span><span class="k2">(</span>finetutto<span class="k3">=</span><span class="k3">=</span><span class="n">1</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_RIGHT<span class="k2">]</span><span class="k2">)</span>
            incremento<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_LEFT<span class="k2">]</span><span class="k2">)</span>
            decremento<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>

        <span class="c">// Redraw.</span>
        visualsprite<span class="k2">(</span><span class="k2">)</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 (bamccaig)</author>
		<pubDate>Sun, 01 Apr 2007 07:57:14 +0000</pubDate>
	</item>
</rss>
