<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>switching between functions</title>
		<link>http://www.allegro.cc/forums/view/590381</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 04 Mar 2007 11:40:55 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>//main.cpp<br />---------</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include "dec.h"</span>
<span class="number">  2</span>
<span class="number">  3</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  6</span><span class="k2">{</span>
<span class="number">  7</span>    init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>    <span class="k1">while</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_ESC<span class="k2">]</span><span class="k2">)</span>
<span class="number">  9</span>    <span class="k2">{</span>
<span class="number"> 10</span>
<span class="number"> 11</span>        mainMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>        <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer,<a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span>    <span class="k2">}</span>
<span class="number"> 16</span>    cleanUp<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>
<span class="number"> 18</span>
<span class="number"> 19</span>
<span class="number"> 20</span><span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 21</span><span class="k2">}</span>
<span class="number"> 22</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>
</div></div><p>


//mainMenu.cpp<br />--------------
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include "dec.h"</span>
<span class="number">   2</span>
<span class="number">   3</span><span class="c">/*Choices</span>
<span class="number">   4</span><span class="c">------------</span>
<span class="number">   5</span><span class="c"></span>
<span class="number">   6</span><span class="c">1.) start game</span>
<span class="number">   7</span><span class="c"></span>
<span class="number">   8</span><span class="c">2.) options</span>
<span class="number">   9</span><span class="c"></span>
<span class="number">  10</span><span class="c">3.) instructions</span>
<span class="number">  11</span><span class="c"></span>
<span class="number">  12</span><span class="c">4.) controls</span>
<span class="number">  13</span><span class="c"></span>
<span class="number">  14</span><span class="c">5.) credits</span>
<span class="number">  15</span><span class="c"></span>
<span class="number">  16</span><span class="c">----------------</span>
<span class="number">  17</span><span class="c"></span>
<span class="number">  18</span><span class="c">*/</span>
<span class="number">  19</span>
<span class="number">  20</span><span class="k1">unsigned</span> <span class="k1">short</span> choice<span class="k2">;</span>
<span class="number">  21</span>
<span class="number">  22</span><span class="k1">void</span> checkChoice<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  23</span>
<span class="number">  24</span>
<span class="number">  25</span>
<span class="number">  26</span><span class="k1">void</span> mainMenu<span class="k2">(</span><span class="k2">)</span>
<span class="number">  27</span><span class="k2">{</span>
<span class="number">  28</span>    <span class="k1">while</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_ESC<span class="k2">]</span><span class="k2">)</span>
<span class="number">  29</span>    <span class="k2">{</span>
<span class="number">  30</span>
<span class="number">  31</span>    mainMenu:
<span class="number">  32</span>
<span class="number">  33</span>    checkChoice<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  34</span>
<span class="number">  35</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_UP<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> menu <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  36</span>    <span class="k2">{</span>
<span class="number">  37</span>        menu <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  38</span>        <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_UP<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="number">  39</span>    <span class="k2">}</span>
<span class="number">  40</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_DOWN<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> menu <span class="k3">=</span><span class="k3">=</span> <span class="n">5</span> <span class="k2">)</span>
<span class="number">  41</span>    <span class="k2">{</span>
<span class="number">  42</span>        menu <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  43</span>        <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_DOWN<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="number">  44</span>    <span class="k2">}</span>
<span class="number">  45</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_DOWN<span class="k2">]</span> <span class="k2">)</span>
<span class="number">  46</span>    <span class="k2">{</span>
<span class="number">  47</span>        menu<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  48</span>        <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_DOWN<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="number">  49</span>    <span class="k2">}</span>
<span class="number">  50</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_UP<span class="k2">]</span><span class="k2">)</span>
<span class="number">  51</span>    <span class="k2">{</span>
<span class="number">  52</span>        menu--<span class="k2">;</span>
<span class="number">  53</span>        <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_UP<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="number">  54</span>    <span class="k2">}</span>
<span class="number">  55</span>
<span class="number">  56</span>
<span class="number">  57</span>
<span class="number">  58</span>
<span class="number">  59</span>
<span class="number">  60</span>    <span class="k1">switch</span><span class="k2">(</span>menu<span class="k2">)</span>
<span class="number">  61</span>    <span class="k2">{</span>
<span class="number">  62</span>        <span class="k1">case</span> <span class="n">0</span><span class="k2">:</span>  <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>                 <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>start,buffer,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</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_ENTER<span class="k2">]</span> <span class="k2">)</span><span class="k2">{</span> choice <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  65</span>                 <span class="k1">if</span><span class="k2">(</span> samplePlayed <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span> <span class="k2">)</span><span class="k2">{</span> <a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>blip,<span class="n">255</span>,<span class="n">0</span>,<span class="n">1000</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> samplePlayed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  66</span>                 <span class="k1">break</span><span class="k2">;</span>
<span class="number">  67</span>
<span class="number">  68</span>        <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>  <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  69</span>                 <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>options,buffer,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</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_ENTER<span class="k2">]</span> <span class="k2">)</span><span class="k2">{</span> choice <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  71</span>                 <span class="k1">if</span><span class="k2">(</span> samplePlayed <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span> <span class="k2">)</span><span class="k2">{</span><a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>blip,<span class="n">255</span>,<span class="n">0</span>,<span class="n">1000</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> samplePlayed <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  72</span>                 <span class="k1">break</span><span class="k2">;</span>
<span class="number">  73</span>
<span class="number">  74</span>        <span class="k1">case</span> <span class="n">2</span><span class="k2">:</span>  <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>                 <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>instructions,buffer,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>                 <span class="k1">if</span><span class="k2">(</span> samplePlayed <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span> <span class="k2">)</span><span class="k2">{</span> <a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>blip,<span class="n">255</span>,<span class="n">0</span>,<span class="n">1000</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> samplePlayed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  77</span>                 <span class="k1">break</span><span class="k2">;</span>
<span class="number">  78</span>
<span class="number">  79</span>        <span class="k1">case</span> <span class="n">3</span><span class="k2">:</span>  <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>                 <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>controls,buffer,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>                 <span class="k1">if</span><span class="k2">(</span> samplePlayed <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span> <span class="k2">)</span><span class="k2">{</span> <a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>blip,<span class="n">255</span>,<span class="n">0</span>,<span class="n">1000</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> samplePlayed <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  82</span>                 <span class="k1">break</span><span class="k2">;</span>
<span class="number">  83</span>
<span class="number">  84</span>        <span class="k1">case</span> <span class="n">4</span><span class="k2">:</span>  <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</span>                 <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>credits,buffer,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>                 <span class="k1">if</span><span class="k2">(</span> samplePlayed <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span> <span class="k2">)</span><span class="k2">{</span> <a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>blip,<span class="n">255</span>,<span class="n">0</span>,<span class="n">1000</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> samplePlayed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  87</span>                 <span class="k1">break</span><span class="k2">;</span>
<span class="number">  88</span>
<span class="number">  89</span>        <span class="k1">case</span> <span class="n">5</span><span class="k2">:</span>  <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>                 <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>quit,buffer,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  91</span>                 <span class="k1">if</span><span class="k2">(</span> samplePlayed <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span> <span class="k2">)</span><span class="k2">{</span> <a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>blip,<span class="n">255</span>,<span class="n">0</span>,<span class="n">1000</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> samplePlayed <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  92</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_ENTER<span class="k2">]</span> <span class="k2">)</span><span class="k2">{</span> <a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>beep,<span class="n">255</span>,<span class="n">0</span>,<span class="n">1000</span>,<span class="n">0</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">100</span><span class="k2">)</span><span class="k2">;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  93</span>                 <span class="k1">break</span><span class="k2">;</span>
<span class="number">  94</span>    <span class="k2">}</span>
<span class="number">  95</span>
<span class="number">  96</span>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer,<a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  97</span>    <span class="k2">}</span>
<span class="number">  98</span>
<span class="number">  99</span>
<span class="number"> 100</span>
<span class="number"> 101</span>
<span class="number"> 102</span>
<span class="number"> 103</span>
<span class="number"> 104</span>
<span class="number"> 105</span>
<span class="number"> 106</span>
<span class="number"> 107</span>
<span class="number"> 108</span><span class="k2">}</span>
<span class="number"> 109</span>
<span class="number"> 110</span>
<span class="number"> 111</span><span class="k1">void</span> checkChoice<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 112</span><span class="k2">{</span>
<span class="number"> 113</span>    <span class="k1">switch</span><span class="k2">(</span>choice<span class="k2">)</span>
<span class="number"> 114</span>        <span class="k2">{</span>
<span class="number"> 115</span>
<span class="number"> 116</span>            <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number"> 117</span>
<span class="number"> 118</span>            mainMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 120</span>
<span class="number"> 121</span>
<span class="number"> 122</span>            <span class="k1">case</span> <span class="n">2</span><span class="k2">:</span>
<span class="number"> 123</span>
<span class="number"> 124</span>            classicGame<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 126</span>
<span class="number"> 127</span>            <span class="k1">case</span> <span class="n">3</span><span class="k2">:</span>
<span class="number"> 128</span>
<span class="number"> 129</span>            optionsMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 131</span>        <span class="k2">}</span>
<span class="number"> 132</span>
<span class="number"> 133</span><span class="k2">}</span>
</div></div><p>


//options.cpp<br />//-------------
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include "dec.h"</span>
<span class="number">   2</span>
<span class="number">   3</span>
<span class="number">   4</span>
<span class="number">   5</span>
<span class="number">   6</span><span class="k1">unsigned</span> <span class="k1">int</span> opMenu <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">   7</span>
<span class="number">   8</span><span class="k1">void</span> drawOpMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   9</span>
<span class="number">  10</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="k1">unsigned</span> <span class="k1">short</span> opChoice <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  13</span>
<span class="number">  14</span><span class="k1">void</span> checkOpChoice<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span>
<span class="number">  16</span>
<span class="number">  17</span>
<span class="number">  18</span>
<span class="number">  19</span>
<span class="number">  20</span><span class="k1">void</span> optionsMenu<span class="k2">(</span><span class="k2">)</span>
<span class="number">  21</span><span class="k2">{</span>
<span class="number">  22</span>
<span class="number">  23</span>
<span class="number">  24</span>
<span class="number">  25</span>       <span class="k1">while</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_ESC<span class="k2">]</span><span class="k2">)</span>
<span class="number">  26</span>       <span class="k2">{</span>
<span class="number">  27</span>
<span class="number">  28</span>       checkOpChoice<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span>
<span class="number">  30</span>       graphics-&gt;setFont<span class="k2">(</span>guiFont<span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>       graphics-&gt;_beginDraw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>
<span class="number">  33</span>
<span class="number">  34</span>
<span class="number">  35</span>
<span class="number">  36</span>       <span class="k1">if</span><span class="k2">(</span>opMenu <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span>
<span class="number">  37</span>       <span class="k2">{</span>
<span class="number">  38</span>           opMenu <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  39</span>           <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_UP<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="number">  40</span>       <span class="k2">}</span>
<span class="number">  41</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_DOWN<span class="k2">]</span><span class="k2">)</span>
<span class="number">  42</span>       <span class="k2">{</span>
<span class="number">  43</span>           opMenu<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  44</span>           <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_DOWN<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="number">  45</span>       <span class="k2">}</span>
<span class="number">  46</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_UP<span class="k2">]</span><span class="k2">)</span>
<span class="number">  47</span>       <span class="k2">{</span>
<span class="number">  48</span>           opMenu--<span class="k2">;</span>
<span class="number">  49</span>           <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_UP<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="number">  50</span>       <span class="k2">}</span>
<span class="number">  51</span>       <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>opMenu <span class="k3">=</span><span class="k3">=</span> <span class="n">4</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span>
<span class="number">  52</span>       <span class="k2">{</span>
<span class="number">  53</span>           opMenu <span class="k3">=</span> <span class="n">4</span><span class="k2">;</span>
<span class="number">  54</span>           <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_DOWN<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="number">  55</span>       <span class="k2">}</span>
<span class="number">  56</span>
<span class="number">  57</span>
<span class="number">  58</span>
<span class="number">  59</span>       <span class="k1">switch</span><span class="k2">(</span>opMenu<span class="k2">)</span>
<span class="number">  60</span>       <span class="k2">{</span>
<span class="number">  61</span>           <span class="k1">case</span> <span class="n">0</span><span class="k2">:</span>
<span class="number">  62</span>           <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>           drawOpMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>           graphics-&gt;drawText<span class="k2">(</span><span class="s">"MUSIC VOLUME: "</span>,<span class="n">19</span>,<span class="n">100</span>,Graphics::LEFT<span class="k2">)</span><span class="k2">;</span>
<span class="number">  65</span>           <span class="k1">break</span><span class="k2">;</span>
<span class="number">  66</span>
<span class="number">  67</span>           <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number">  68</span>           <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  69</span>           drawOpMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>           graphics-&gt;drawText<span class="k2">(</span><span class="s">"SOUND FX VOLUME: "</span>,<span class="n">19</span>,<span class="n">160</span>,Graphics::LEFT<span class="k2">)</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="number">  73</span>           <span class="k1">case</span> <span class="n">2</span><span class="k2">:</span>
<span class="number">  74</span>           <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>           drawOpMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>           graphics-&gt;drawText<span class="k2">(</span><span class="s">"LIVES: "</span>,<span class="n">19</span>,<span class="n">220</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</span>           <span class="k1">break</span><span class="k2">;</span>
<span class="number">  78</span>
<span class="number">  79</span>           <span class="k1">case</span> <span class="n">3</span><span class="k2">:</span>
<span class="number">  80</span>           <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>           drawOpMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>           graphics-&gt;drawText<span class="k2">(</span><span class="s">"MUSIC:"</span>,<span class="n">19</span>,<span class="n">280</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>           <span class="k1">break</span><span class="k2">;</span>
<span class="number">  84</span>
<span class="number">  85</span>           <span class="k1">case</span> <span class="n">4</span><span class="k2">:</span>
<span class="number">  86</span>           <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>           drawOpMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  88</span>           graphics-&gt;drawText<span class="k2">(</span><span class="s">"BACK TO MAIN"</span>,<span class="n">261</span><span class="k3">+</span><span class="k2">(</span>.<span class="n">5</span><span class="k2">)</span>,<span class="n">500</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</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_ENTER<span class="k2">]</span><span class="k2">)</span><span class="k2">{</span> opChoice <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  90</span>           <span class="k1">break</span><span class="k2">;</span>
<span class="number">  91</span>
<span class="number">  92</span>       <span class="k2">}</span>
<span class="number">  93</span>
<span class="number">  94</span>       graphics-&gt;_endDraw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>       <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer,<a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>
<span class="number">  97</span>       <span class="k2">}</span>
<span class="number">  98</span>
<span class="number">  99</span>mainMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</span>
<span class="number"> 101</span><span class="k2">}</span>
<span class="number"> 102</span>
<span class="number"> 103</span>
<span class="number"> 104</span>
<span class="number"> 105</span>
<span class="number"> 106</span>
<span class="number"> 107</span>
<span class="number"> 108</span>
<span class="number"> 109</span><span class="k1">void</span> drawOpMenu<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 110</span><span class="k2">{</span>
<span class="number"> 111</span>    graphics-&gt;drawText<span class="k2">(</span><span class="s">"music volume: "</span>,<span class="n">20</span>,<span class="n">100</span>,Graphics::LEFT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>    graphics-&gt;drawText<span class="k2">(</span><span class="s">"sound fx Volume: "</span>,<span class="n">20</span>,<span class="n">160</span>,Graphics::LEFT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</span>    graphics-&gt;drawText<span class="k2">(</span><span class="s">"lives: "</span>,<span class="n">20</span>,<span class="n">220</span>,Graphics::LEFT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 114</span>    graphics-&gt;drawText<span class="k2">(</span><span class="s">"music: "</span>,<span class="n">20</span>,<span class="n">280</span>,Graphics::LEFT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 115</span>    graphics-&gt;drawText<span class="k2">(</span><span class="s">"back to main"</span>,<span class="n">260</span>,<span class="n">500</span>,Graphics::LEFT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span><span class="k2">}</span>
<span class="number"> 117</span>
<span class="number"> 118</span><span class="k1">void</span> checkOpChoice<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 119</span><span class="k2">{</span>
<span class="number"> 120</span>    <span class="k1">if</span><span class="k2">(</span>opChoice <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 121</span>    <span class="k2">{</span>
<span class="number"> 122</span>        <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>        mainMenu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 124</span>    <span class="k2">}</span>
<span class="number"> 125</span><span class="k2">}</span>
</div></div><p>



ok, im in options menu, and when the user selects back to main, it goes back to mainMenu()</p><p>so i use some variable, cause someone says thatcalling functions directly from other functions, im gonna run ou tof stack memory</p><p>so i tried this</p><p>but when i hit back to main, it just freezes</p><p>i want to be able to when the suer hits back to main, it just goes back to mainMenu() cleanly, and not with all these probs
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Money)</author>
		<pubDate>Sun, 04 Mar 2007 10:49:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Uhm, why aren&#39;t you doing what we told you in #Allegro (make the menu functions return a value, then act on that value, spawning other menus as necessary)? <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 04 Mar 2007 10:56:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>oh, ok, i got it, that worked perfectly, thanks baf
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Money)</author>
		<pubDate>Sun, 04 Mar 2007 11:40:55 +0000</pubDate>
	</item>
</rss>
