<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Segmentation Fault? Researched... Couldn&#39;t Fix It.</title>
		<link>http://www.allegro.cc/forums/view/588848</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 05 Dec 2006 06:53:03 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Please ignore this thread. My problem is solved. (I re-wrote the code.)</p><p>After spending a long time on my code, I got a segmentation error. My ability isn&#39;t the best... but I want this to work.</p><p>My fault occurs not while compiling, but when I run the program. There is no problem with syntax or anything, my program just crashes.</p><p>If anyone could explain how to make it work, that would be great.</p><p>Here is my code. The class &quot;particle_array&quot; and all its functions are in the header file and another file.</p><p>The main 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="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;math.h&gt;</span></td></tr><tr><td class="number">3</td><td><span class="p">#include &lt;cstdlib&gt;</span></td></tr><tr><td class="number">4</td><td><span class="p">#include &lt;stdio.h&gt;</span></td></tr><tr><td class="number">5</td><td><span class="p">#include &lt;iostream&gt;</span></td></tr><tr><td class="number">6</td><td><span class="p">#include "TWOSheader.h"</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>&#160;</td></tr><tr><td class="number">13</td><td><span class="k1">bool</span> alternate<span class="k2">;</span> <span class="c">//used for moving sand + water back and forth</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td><span class="k1">int</span> cursorsize <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span> <span class="c">//size of cursor</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>&#160;</td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td><span class="k1">int</span> falses<span class="k2">;</span> <span class="c">//DEGUGGING</span></td></tr><tr><td class="number">20</td><td><span class="k1">int</span> trues<span class="k2">;</span><span class="c">//DEBUGGING</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td><span class="k1">const</span> <span class="k1">bool</span> RIGHT <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td><span class="k1">const</span> <span class="k1">int</span> LEFT <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td>&#160;</td></tr><tr><td class="number">27</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer<span class="k2">;</span> <span class="c">//The buffer.</span></td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td><span class="k1">int</span> currentelement <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> <span class="c">// Selected Element</span></td></tr><tr><td class="number">30</td><td>&#160;</td></tr><tr><td class="number">31</td><td><span class="k1">void</span> display_elements <span class="k2">(</span><span class="k1">int</span> current<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>     <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer,<span class="n">600</span>,<span class="n">0</span>,<span class="n">800</span>,<span class="n">600</span>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">50</span>,<span class="n">50</span>,<span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>     <span class="k1">if</span><span class="k2">(</span>currentelement <span class="k3">=</span><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>                <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span> buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Wall"</span>, <span class="n">605</span>, <span class="n">10</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>                <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span> buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Sand"</span>, <span class="n">605</span>, <span class="n">20</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">200</span>, <span class="n">200</span>, <span class="n">200</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>                <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span> buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Water"</span>, <span class="n">605</span>, <span class="n">30</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">200</span>, <span class="n">200</span>, <span class="n">200</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>                </td></tr><tr><td class="number">40</td><td>&#160;</td></tr><tr><td class="number">41</td><td>&#160;</td></tr><tr><td class="number">42</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">43</td><td>     <span class="k1">if</span><span class="k2">(</span>currentelement <span class="k3">=</span><span class="k3">=</span> <span class="n">2</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>                <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span> buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Wall"</span>, <span class="n">605</span>, <span class="n">10</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">200</span>, <span class="n">200</span>, <span class="n">200</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>                <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span> buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Sand"</span>, <span class="n">605</span>, <span class="n">20</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>                <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span> buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Water"</span>, <span class="n">605</span>, <span class="n">30</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">200</span>, <span class="n">200</span>, <span class="n">200</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>                </td></tr><tr><td class="number">49</td><td>&#160;</td></tr><tr><td class="number">50</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">51</td><td>     <span class="k1">if</span><span class="k2">(</span>currentelement <span class="k3">=</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span></td></tr><tr><td class="number">52</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">53</td><td>                <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span> buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Wall"</span>, <span class="n">605</span>, <span class="n">10</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">200</span>, <span class="n">200</span>, <span class="n">200</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>                <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span> buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Sand"</span>, <span class="n">605</span>, <span class="n">20</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">200</span>, <span class="n">200</span>, <span class="n">200</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td>                <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span> buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"Water"</span>, <span class="n">605</span>, <span class="n">30</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>                </td></tr><tr><td class="number">57</td><td>&#160;</td></tr><tr><td class="number">58</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">59</td><td><span class="k2">}</span></td></tr><tr><td class="number">60</td><td>&#160;</td></tr><tr><td class="number">61</td><td>&#160;</td></tr><tr><td class="number">62</td><td><span class="k1">void</span> interface_mouse<span class="k2">(</span><span class="k1">int</span> xm, <span class="k1">int</span> ym<span class="k2">)</span></td></tr><tr><td class="number">63</td><td><span class="k2">{</span></td></tr><tr><td class="number">64</td><td>     <span class="k1">if</span><span class="k2">(</span>ym <span class="k3">&gt;</span> <span class="n">10</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> ym <span class="k3">&lt;</span> <span class="n">20</span><span class="k2">)</span></td></tr><tr><td class="number">65</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">66</td><td>           currentelement <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">68</td><td>     <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ym <span class="k3">&gt;</span> <span class="n">20</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> ym <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">)</span></td></tr><tr><td class="number">69</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">70</td><td>          currentelement <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">72</td><td>     <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ym <span class="k3">&gt;</span> <span class="n">30</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> ym <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">)</span></td></tr><tr><td class="number">73</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">74</td><td>          currentelement <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">76</td><td><span class="k2">}</span></td></tr><tr><td class="number">77</td><td>&#160;</td></tr><tr><td class="number">78</td><td>&#160;</td></tr><tr><td class="number">79</td><td>&#160;</td></tr><tr><td class="number">80</td><td>&#160;</td></tr><tr><td class="number">81</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">82</td><td> </td></tr><tr><td class="number">83</td><td>    <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></td></tr><tr><td class="number">84</td><td>    <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></td></tr><tr><td class="number">85</td><td>    <a href="http://www.allegro.cc/manual/install_mouse" target="_blank"><span class="a">install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">86</td><td>    </td></tr><tr><td class="number">87</td><td>    currentelement <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">88</td><td>    </td></tr><tr><td class="number">89</td><td>    particle_array part<span class="k2">;</span> <span class="c">//A new particle array object.</span></td></tr><tr><td class="number">90</td><td>    </td></tr><tr><td class="number">91</td><td>    alternate <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">92</td><td>&#160;</td></tr><tr><td class="number">93</td><td>    buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">94</td><td>    </td></tr><tr><td class="number">95</td><td>    <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">8</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">96</td><td>    <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span> GFX_AUTODETECT_WINDOWED, <span class="n">800</span>, <span class="n">600</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">97</td><td>    </td></tr><tr><td class="number">98</td><td>    <a href="http://www.allegro.cc/manual/set_window_title" target="_blank"><span class="a">set_window_title</span></a><span class="k2">(</span><span class="s">"Sandman's Dream"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">99</td><td>    </td></tr><tr><td class="number">100</td><td>    display_elements<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">101</td><td>    </td></tr><tr><td class="number">102</td><td>    </td></tr><tr><td class="number">103</td><td>    </td></tr><tr><td class="number">104</td><td>    <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">105</td><td>    </td></tr><tr><td class="number">106</td><td>    <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></td></tr><tr><td class="number">107</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">108</td><td>    </td></tr><tr><td class="number">109</td><td>        <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">110</td><td>        </td></tr><tr><td class="number">111</td><td>        <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer,<span class="n">0</span>,<span class="n">0</span>,<span class="n">600</span>,<span class="n">600</span>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">112</td><td>        </td></tr><tr><td class="number">113</td><td>        </td></tr><tr><td class="number">114</td><td>        </td></tr><tr><td class="number">115</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&lt;</span> <span class="n">600</span><span class="k2">)</span></td></tr><tr><td class="number">116</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">117</td><td>                   </td></tr><tr><td class="number">118</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> cursorsize<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">119</td><td>              <span class="k2">{</span></td></tr><tr><td class="number">120</td><td>                      <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> cursorsize<span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">121</td><td>                      <span class="k2">{</span></td></tr><tr><td class="number">122</td><td>                              <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a><span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span>j <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">123</td><td>                              <span class="k2">{</span></td></tr><tr><td class="number">124</td><td>                                    part.particles<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_330.html" target="_blank">floor</a><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a><span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span>j<span class="k2">]</span><span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_330.html" target="_blank">floor</a><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span>i<span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> currentelement<span class="k2">;</span></td></tr><tr><td class="number">125</td><td>                              <span class="k2">}</span></td></tr><tr><td class="number">126</td><td>                      <span class="k2">}</span>  </td></tr><tr><td class="number">127</td><td>                      </td></tr><tr><td class="number">128</td><td>              <span class="k2">}</span></td></tr><tr><td class="number">129</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">130</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">1</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&gt;</span> <span class="n">600</span><span class="k2">)</span></td></tr><tr><td class="number">131</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">132</td><td>                 interface_mouse<span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a>,<a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">133</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">134</td><td>        </td></tr><tr><td class="number">135</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">2</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&lt;</span><span class="n">600</span><span class="k2">)</span></td></tr><tr><td class="number">136</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">137</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> <span class="n">10</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">138</td><td>              <span class="k2">{</span></td></tr><tr><td class="number">139</td><td>                      <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">10</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">140</td><td>                      <span class="k2">{</span></td></tr><tr><td class="number">141</td><td>                              part.particles<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_330.html" target="_blank">floor</a><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a><span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span>i<span class="k3">+</span><span class="n">5</span><span class="k2">]</span><span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_330.html" target="_blank">floor</a><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k3">-</span>j<span class="k3">+</span><span class="n">5</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">142</td><td>                      <span class="k2">}</span></td></tr><tr><td class="number">143</td><td>              <span class="k2">}</span></td></tr><tr><td class="number">144</td><td>              </td></tr><tr><td class="number">145</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">146</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_1<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">147</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">148</td><td>               cursorsize <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span></td></tr><tr><td class="number">149</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">150</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_2<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">151</td><td>        <span class="k2">{</span>       </td></tr><tr><td class="number">152</td><td>                cursorsize <span class="k3">=</span> <span class="n">6</span><span class="k2">;</span></td></tr><tr><td class="number">153</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">154</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_3<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">155</td><td>        <span class="k2">{</span>       </td></tr><tr><td class="number">156</td><td>                cursorsize <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span></td></tr><tr><td class="number">157</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">158</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> <span class="n">300</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">159</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">160</td><td>              <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">300</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">161</td><td>              <span class="k2">{</span></td></tr><tr><td class="number">162</td><td>                      <span class="k1">if</span><span class="k2">(</span>part.particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">=</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">163</td><td>                      <span class="k2">{</span></td></tr><tr><td class="number">164</td><td>                               <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> buffer, j<span class="k3">*</span><span class="n">2</span>, i<span class="k3">*</span><span class="n">2</span>, j<span class="k3">*</span><span class="n">2</span><span class="k3">+</span><span class="n">1</span>, i<span class="k3">*</span><span class="n">2</span><span class="k3">+</span><span class="n">1</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">100</span>, <span class="n">100</span>, <span class="n">100</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">165</td><td>                      <span class="k2">}</span></td></tr><tr><td class="number">166</td><td>              <span class="k2">}</span></td></tr><tr><td class="number">167</td><td>        <span class="k2">}</span>alternate <span class="k3">=</span> <span class="k3">!</span>alternate<span class="k2">;</span></td></tr><tr><td class="number">168</td><td>        </td></tr><tr><td class="number">169</td><td>        part.update_particles<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">170</td><td>        part.draw_particles<span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">171</td><td>        part.refreshmoved<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">172</td><td>        </td></tr><tr><td class="number">173</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&gt;</span> <span class="n">600</span><span class="k2">)</span></td></tr><tr><td class="number">174</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">175</td><td>                   display_elements<span class="k2">(</span>currentelement<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">176</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">177</td><td>        </td></tr><tr><td class="number">178</td><td>        </td></tr><tr><td class="number">179</td><td>        </td></tr><tr><td class="number">180</td><td>        <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, buffer, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">181</td><td>        </td></tr><tr><td class="number">182</td><td>        </td></tr><tr><td class="number">183</td><td>        </td></tr><tr><td class="number">184</td><td>        <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">10</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">185</td><td>        </td></tr><tr><td class="number">186</td><td>        </td></tr><tr><td class="number">187</td><td>&#160;</td></tr><tr><td class="number">188</td><td>    <span class="k2">}</span>    </td></tr><tr><td class="number">189</td><td>    </td></tr><tr><td class="number">190</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">191</td><td>    </td></tr><tr><td class="number">192</td><td><span class="k2">}</span>   </td></tr><tr><td class="number">193</td><td><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><span class="k2">;</span></td></tr></tbody></table></div></div><p>

Spacing may be wierd, but it shouldn&#39;t be all that hard. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>Thanks in advance for looking at my code.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Durnus)</author>
		<pubDate>Sat, 02 Dec 2006 11:41:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Im pretty lazy right now so I&#39;m not gonna look through the whole thing, but I would suggest doing
</p><div class="source-code snippet"><div class="inner"><pre>buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
after the call to set_gfx_mode.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kazzmir)</author>
		<pubDate>Sat, 02 Dec 2006 11:44:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks for the quick response, I edited my code and recompiled, but it didn&#39;t fix the problem.</p><p>I&#39;ve read somewhere that the debug will tell you the position of the bug, but I&#39;m using Dev-Cpp and it won&#39;t tell me. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Durnus)</author>
		<pubDate>Sat, 02 Dec 2006 11:53:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>And I wouldn&#39;t use show_mouse on anything other than the screen. Use<br /><span class="source-code"><a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/mouse_sprite" target="_blank"><span class="a">mouse_sprite</span></a>, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a>, <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k2">)</span><span class="k2">;</span></span><br />Right before blitting the buffer to the screen. And use blit to copy the buffer to the screen, not draw_sprite (unless you want the buffer to be masked, which you usually don&#39;t.</p><p>As for the crash.. check all return values. If a function can fail, check to make sure it doesn&#39;t.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sat, 02 Dec 2006 11:54:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry... I&#39;m not that good at debugging...</p><p>Checking return values? How do you do that, and what exactly does it accomplish?</p><p>I just found that when I make a break point in the code, it doesn&#39;t even get into the main part of the code. (The main function. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />)</p><p><img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Durnus)</author>
		<pubDate>Sat, 02 Dec 2006 12:01:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Checking return values? How do you do that, and what exactly does it accomplish?
</p></div></div><p>
When the function returns, it&#39;ll give you back a value, assuming it doesn&#39;t return void. Like create_bitmap returns a BITMAP*. If that fails, the return value will be NULL. So you&#39;d check:
</p><div class="source-code snippet"><div class="inner"><pre>buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="k1">if</span><span class="k2">(</span>buffer <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="k2">{</span>
   <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Couldn't create bitmap!"</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">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
If buffer isn&#39;t NULL, then it&#39;s a valid bitmap. Check Allegro&#39;s manual for what the other functions return for failure.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sat, 02 Dec 2006 12:19:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>could use a switch
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Three Harris)</author>
		<pubDate>Sat, 02 Dec 2006 12:50:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t understand why you are using a three-dimensional array for your particles, but a segmentation fault could be indicative of illegal array access. Try commenting out the particle system and see if it runs, if so, then that&#39;s where your problem is and it probably has to do with going outside the array bounds.</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, 02 Dec 2006 15:14:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>@Kitty Cat:<br />Okay, I tried that, but the program doesn&#039;t get far enough along to execute the code. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>@Three Harris:<br />I assume you mean I could use a switch in the interface display function. I&#039;ll do that, I guess it is more efficient.</p><p>@Kris Asick:<br />I tried disabling all the particle array stuff, and it still didn&#039;t work.</p><p>Nothing I&#039;m trying is working... maybe something is wrong with my header file?</p><p>Header:
</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">#ifndef TWOSSTUFF</span>
<span class="number">  2</span><span class="p">#define TWOSSTUFF</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">class</span> particle_array
<span class="number">  5</span><span class="k2">{</span>
<span class="number">  6</span>     public:
<span class="number">  7</span>
<span class="number">  8</span><span class="k1">void</span> draw_particles<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span><span class="k1">void</span> update_particle<span class="k2">(</span><span class="k1">int</span> j, <span class="k1">int</span> i, <span class="k1">bool</span> alternate<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="k1">void</span> refreshmoved<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span><span class="k1">void</span> update_particles<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span><span class="k1">int</span> particles<span class="k2">[</span><span class="n">400</span><span class="k2">]</span><span class="k2">[</span><span class="n">400</span><span class="k2">]</span><span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 16</span><span class="k1">int</span> particleselected<span class="k2">[</span><span class="n">400</span><span class="k2">]</span><span class="k2">[</span><span class="n">400</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 17</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 18</span><span class="p">#endif</span>
</div></div><p>
Other file:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;allegro.h&gt;</span>
<span class="number">   2</span><span class="p">#include "TWOSheader.h"</span>
<span class="number">   3</span><span class="p">#include &lt;ctime&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;cstdlib&gt;</span>
<span class="number">   5</span>
<span class="number">   6</span>
<span class="number">   7</span>
<span class="number">   8</span>
<span class="number">   9</span>
<span class="number">  10</span><span class="k1">void</span> particle_array::draw_particles<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer<span class="k2">)</span>
<span class="number">  11</span><span class="k2">{</span>
<span class="number">  12</span>     <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> <span class="n">300</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  13</span>     <span class="k2">{</span>
<span class="number">  14</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">300</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  15</span>              <span class="k2">{</span>
<span class="number">  16</span>                      <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">=</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span>
<span class="number">  17</span>                      <span class="k2">{</span>
<span class="number">  18</span>                               <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> buffer, j<span class="k3">*</span><span class="n">2</span>, i<span class="k3">*</span><span class="n">2</span>, j<span class="k3">*</span><span class="n">2</span><span class="k3">+</span><span class="n">1</span>, i<span class="k3">*</span><span class="n">2</span><span class="k3">+</span><span class="n">1</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">100</span>, <span class="n">100</span>, <span class="n">100</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span>                      <span class="k2">}</span>
<span class="number">  20</span>                      <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">=</span><span class="k3">=</span><span class="n">2</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/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> buffer, j<span class="k3">*</span><span class="n">2</span>, i<span class="k3">*</span><span class="n">2</span>, j<span class="k3">*</span><span class="n">2</span><span class="k3">+</span><span class="n">1</span>, i<span class="k3">*</span><span class="n">2</span><span class="k3">+</span><span class="n">1</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">221</span>, <span class="n">190</span>, <span class="n">66</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  23</span>                      <span class="k2">}</span>
<span class="number">  24</span>                      <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">=</span><span class="k3">=</span><span class="n">3</span><span class="k2">)</span>
<span class="number">  25</span>                      <span class="k2">{</span>
<span class="number">  26</span>                               <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> buffer, j<span class="k3">*</span><span class="n">2</span>, i<span class="k3">*</span><span class="n">2</span>, j<span class="k3">*</span><span class="n">2</span><span class="k3">+</span><span class="n">1</span>, i<span class="k3">*</span><span class="n">2</span><span class="k3">+</span><span class="n">1</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span> <span class="n">0</span>, <span class="n">0</span>, <span class="n">240</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  27</span>                      <span class="k2">}</span>
<span class="number">  28</span>              <span class="k2">}</span>
<span class="number">  29</span>     <span class="k2">}</span>
<span class="number">  30</span><span class="k2">}</span>
<span class="number">  31</span><span class="k1">void</span> particle_array::refreshmoved<span class="k2">(</span><span class="k2">)</span>
<span class="number">  32</span><span class="k2">{</span>
<span class="number">  33</span>     <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">300</span><span class="k2">;</span> i <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">;</span> i--<span class="k2">)</span>
<span class="number">  34</span>     <span class="k2">{</span>
<span class="number">  35</span>
<span class="number">  36</span>              <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">300</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  37</span>              <span class="k2">{</span>
<span class="number">  38</span>                      particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  39</span>                      particleselected<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt; <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  40</span>                      
<span class="number">  41</span>              <span class="k2">}</span>
<span class="number">  42</span>      <span class="k2">}</span>
<span class="number">  43</span><span class="k2">}</span>
<span class="number">  44</span>
<span class="number">  45</span>
<span class="number">  46</span>
<span class="number">  47</span><span class="k1">void</span> particle_array::update_particles<span class="k2">(</span><span class="k2">)</span>
<span class="number">  48</span><span class="k2">{</span>
<span class="number">  49</span>     <span class="k1">bool</span> goagain <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  50</span>     <span class="k1">bool</span> alternate <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  51</span>     
<span class="number">  52</span>     <span class="k1">while</span><span class="k2">(</span>goagain <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>     <span class="k2">{</span>
<span class="number">  54</span>     alternate <span class="k3">=</span> <span class="k3">!</span>alternate<span class="k2">;</span>
<span class="number">  55</span>     goagain <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  56</span>          
<span class="number">  57</span>     <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">300</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  58</span>     <span class="k2">{</span>
<span class="number">  59</span>          <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">300</span><span class="k2">;</span> i <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">;</span> i--<span class="k2">)</span>
<span class="number">  60</span>          <span class="k2">{</span>     
<span class="number">  61</span>               <span class="k1">if</span><span class="k2">(</span>particleselected<span class="k2">[</span>j<span class="k2">]</span><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="number">  62</span>               <span class="k2">{</span>     
<span class="number">  63</span>                    <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</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">  64</span>                    <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">7</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  65</span>                    <span class="k2">{</span>
<span class="number">  66</span>                         particle_array::update_particle<span class="k2">(</span>j,i, alternate<span class="k2">)</span><span class="k2">;</span>
<span class="number">  67</span>                         particleselected<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt; <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  68</span>                    <span class="k2">}</span>
<span class="number">  69</span>                    <span class="k1">else</span>
<span class="number">  70</span>                    <span class="k2">{</span>
<span class="number">  71</span>                         goagain <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  72</span>                    <span class="k2">}</span>
<span class="number">  73</span>               <span class="k2">}</span>
<span class="number">  74</span>          <span class="k2">}</span>
<span class="number">  75</span>     <span class="k2">}</span>
<span class="number">  76</span>     
<span class="number">  77</span>     
<span class="number">  78</span>     <span class="k2">}</span> 
<span class="number">  79</span>     
<span class="number">  80</span><span class="k2">}</span>  
<span class="number">  81</span>
<span class="number">  82</span><span class="k1">void</span> particle_array::update_particle<span class="k2">(</span><span class="k1">int</span> j, <span class="k1">int</span> i, <span class="k1">bool</span> alternate<span class="k2">)</span>
<span class="number">  83</span><span class="k2">{</span>
<span class="number">  84</span>                  <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span> <span class="c">// Has it moved?</span>
<span class="number">  85</span>                  <span class="k2">{</span>
<span class="number">  86</span>                      alternate <span class="k3">=</span> <span class="k3">!</span>alternate<span class="k2">;</span>
<span class="number">  87</span>                      
<span class="number">  88</span>                      
<span class="number">  89</span>
<span class="number">  90</span>                      <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">=</span><span class="k3">=</span><span class="n">2</span><span class="k2">)</span> <span class="c">// If the particle is Sand</span>
<span class="number">  91</span>                      <span class="k2">{</span>
<span class="number">  92</span>                                            
<span class="number">  93</span>                                            
<span class="number">  94</span>                               <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  95</span>                               <span class="k2">{</span>
<span class="number">  96</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  97</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  98</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  99</span>                               <span class="k2">}</span>
<span class="number"> 100</span>                                                           
<span class="number"> 101</span>                               <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> alternate <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 102</span>                               <span class="k2">{</span>
<span class="number"> 103</span>                                  <span class="k1">if</span><span class="k2">(</span>j <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 104</span>                                  <span class="k2">{</span>
<span class="number"> 105</span>                                        particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 106</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 107</span>                                        particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 108</span>                                      <span class="k2">}</span>
<span class="number"> 109</span>                               <span class="k2">}</span>
<span class="number"> 110</span>                               <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> alternate <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 111</span>                               <span class="k2">{</span>
<span class="number"> 112</span>                                  <span class="k1">if</span><span class="k2">(</span>j <span class="k3">&lt;</span> <span class="n">400</span><span class="k2">)</span>
<span class="number"> 113</span>                                  <span class="k2">{</span>
<span class="number"> 114</span>                                        particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 115</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 116</span>                                        particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 117</span>                                  <span class="k2">}</span>
<span class="number"> 118</span>                               <span class="k2">}</span>
<span class="number"> 119</span>                               
<span class="number"> 120</span>                               
<span class="number"> 121</span>
<span class="number"> 122</span>                               <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span>
<span class="number"> 123</span>                               <span class="k2">{</span>
<span class="number"> 124</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 125</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 126</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 127</span>                               <span class="k2">}</span>
<span class="number"> 128</span>                               
<span class="number"> 129</span>                               
<span class="number"> 130</span>                               <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">3</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> alternate <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 131</span>                               <span class="k2">{</span>
<span class="number"> 132</span>                                        particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 133</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 134</span>                                        particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 135</span>                               <span class="k2">}</span>
<span class="number"> 136</span>                               <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">3</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> alternate <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 137</span>                               <span class="k2">{</span>
<span class="number"> 138</span>                                        particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 139</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 140</span>                                        particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 141</span>                               <span class="k2">}</span>
<span class="number"> 142</span>                               
<span class="number"> 143</span>                               
<span class="number"> 144</span>                      <span class="k2">}</span>
<span class="number"> 145</span>                      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">=</span><span class="k3">=</span><span class="n">3</span><span class="k2">)</span> <span class="c">// If the particle is Water</span>
<span class="number"> 146</span>                      <span class="k2">{</span>
<span class="number"> 147</span>                                            
<span class="number"> 148</span>                                           
<span class="number"> 149</span>                               <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 150</span>                               <span class="k2">{</span>
<span class="number"> 151</span>                                        <span class="k1">if</span><span class="k2">(</span>i <span class="k3">&lt;</span> <span class="n">400</span><span class="k2">)</span>
<span class="number"> 152</span><span class="k2">{</span>
<span class="number"> 153</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 154</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 155</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 156</span><span class="k2">}</span>
<span class="number"> 157</span>                               <span class="k2">}</span>
<span class="number"> 158</span>                               <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 159</span>                               <span class="k2">{</span>
<span class="number"> 160</span>                                        <span class="k1">if</span><span class="k2">(</span>j <span class="k3">&lt;</span> <span class="n">400</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> alternate <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 161</span><span class="k2">{</span>
<span class="number"> 162</span>                                        particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 163</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 164</span>                                        particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 165</span><span class="k2">}</span>
<span class="number"> 166</span>
<span class="number"> 167</span>                               <span class="k2">}</span>
<span class="number"> 168</span>                               <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 169</span>                               <span class="k2">{</span>
<span class="number"> 170</span>                                        <span class="k1">if</span><span class="k2">(</span>j <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 171</span><span class="k2">{</span>
<span class="number"> 172</span>                                        particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 173</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 174</span>                                        particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k2">[</span>i<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 175</span><span class="k2">}</span>
<span class="number"> 176</span>                               <span class="k2">}</span>
<span class="number"> 177</span>                              
<span class="number"> 178</span>                                <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 179</span>                                <span class="k2">{</span>
<span class="number"> 180</span>                                
<span class="number"> 181</span>                                  <span class="k1">if</span><span class="k2">(</span>alternate<span class="k2">)</span>
<span class="number"> 182</span>                                  <span class="k2">{</span>
<span class="number"> 183</span>
<span class="number"> 184</span>                                    <span class="k1">if</span><span class="k2">(</span>j <span class="k3">&lt;</span> <span class="n">300</span><span class="k2">)</span>
<span class="number"> 185</span>                                    <span class="k2">{</span>                                             
<span class="number"> 186</span>                                              
<span class="number"> 187</span>                                        particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 188</span>                                        particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 189</span>                                        particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 190</span>                                    <span class="k2">}</span>
<span class="number"> 191</span>                                        
<span class="number"> 192</span>                                  <span class="k2">}</span>
<span class="number"> 193</span>                                  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>alternate<span class="k2">)</span>
<span class="number"> 194</span>                                  <span class="k2">{</span>
<span class="number"> 195</span>
<span class="number"> 196</span>                                    <span class="k1">if</span><span class="k2">(</span>j <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 197</span>                                    <span class="k2">{</span>                                             
<span class="number"> 198</span>                                              
<span class="number"> 199</span>                                              particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 200</span>                                              particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 201</span>                                              particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 202</span>                                     
<span class="number"> 203</span>                                    <span class="k2">}</span>
<span class="number"> 204</span>                                  <span class="k2">}</span>  
<span class="number"> 205</span>                                <span class="k2">}</span>
<span class="number"> 206</span>                                <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 207</span>                                <span class="k2">{</span>
<span class="number"> 208</span>
<span class="number"> 209</span>                                              <span class="k1">if</span><span class="k2">(</span>j <span class="k3">&lt;</span> <span class="n">300</span><span class="k2">)</span>
<span class="number"> 210</span><span class="k2">{</span>
<span class="number"> 211</span>                                        
<span class="number"> 212</span>                                              particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 213</span>                                              particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 214</span>                                              particles<span class="k2">[</span>j<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 215</span><span class="k2">}</span>
<span class="number"> 216</span>                                        
<span class="number"> 217</span>                                  <span class="k2">}</span>
<span class="number"> 218</span>                                  <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 219</span>                                  <span class="k2">{</span>
<span class="number"> 220</span>
<span class="number"> 221</span>                                              <span class="k1">if</span><span class="k2">(</span>j <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 222</span><span class="k2">{</span>                                       
<span class="number"> 223</span>                                        
<span class="number"> 224</span>                                              particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 225</span>                                              particles<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 226</span>                                              particles<span class="k2">[</span>j-1<span class="k2">]</span><span class="k3">&lt;</span>i&gt;<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 227</span>                                     
<span class="number"> 228</span><span class="k2">}</span>
<span class="number"> 229</span>                                   <span class="k2">}</span>  
<span class="number"> 230</span>                             
<span class="number"> 231</span>                              
<span class="number"> 232</span>                      <span class="k2">}</span>
<span class="number"> 233</span>               <span class="k2">}</span>
<span class="number"> 234</span><span class="k2">}</span>
</div></div><p>
Yes, I know the spacing is all wrong.<br />I hope there is something wrong with my header file. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>(Edit: )<br />Now I&#039;m thinking of just re-writing this code... it&#039;s so disorganized and horrible looking. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> And maybe I&#039;d get rid of that... interesting 3-d array. (And make it a 4 dimensional array! Mehehehe! Just kidding.)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Durnus)</author>
		<pubDate>Sat, 02 Dec 2006 20:09:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>As a tip, remove the paramter from display_elements; you don&#39;t use it.</p><p>Comment out the <tt>particle_array part</tt> line, for me... That line causes your program to allocate 2.5 megabytes on the stack, which is probably the crash.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sat, 02 Dec 2006 20:42:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I just commented out all the particle stuff, but the error still happens...</p><p>I just commented out the header file, but the error still happens.</p><p>Trying to think of when the error started happening... It happened when I split the class into multiple files. That help? <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>(Edit)<br />Oh, thanks for the tip. Didn&#39;t realise I wasn&#39;t using it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Durnus)</author>
		<pubDate>Sat, 02 Dec 2006 20:55:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
<span class="source-code"><span class="k1">while</span><span class="k2">(</span>goagain <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span><span class="k2">;</span></span>
</p></div></div><p>Take off the semicolon, of course.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
<span class="source-code"><a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></span>
</p></div></div><p>Do this exactly 1 time at the beginning of your program, not several thousand times each second... it&#39;s just giving you the same random number for that whole second.</p><p>I ran your code, and it hung at that while loop. Then it hung someplace else. I commented out the particle code from the main function, and it crashed in the rectfill call. No, I don&#39;t know why.</p><p>But I actually got a window created. If you are still having the crash before set_gfx_mode, then you need to make sure you are actually rebuilding the code.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sat, 02 Dec 2006 21:08:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m rebuilding it every time. It does not crash at the set_gfx_mode, it crashes before the first thing I put in my main function.</p><p>...since it got so much further for you, I think I should reboot my computer or something.</p><p>Rebooted, still not working. I think I&#39;m just going to re-write it. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>(EDIT)<br />I started re-writing my code, but immediately ran into the error again.<br />I have cut down the cause to this: when I make a bitmap and set it equal to create_bitmap(800,600) it gives me the segmentation fault.</p><p>Here is 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="p">#include &lt;iostream&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include "allegro.h"</span></td></tr><tr><td class="number">3</td><td><span class="c">//My headers</span></td></tr><tr><td class="number">4</td><td><span class="c">//#include "particlegrid.h"</span></td></tr><tr><td class="number">5</td><td><span class="c">//using namespace particles;</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td><span class="k1">int</span> particles<span class="k2">[</span><span class="n">300</span><span class="k2">]</span><span class="k2">[</span><span class="n">300</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td><span class="k1">bool</span> particlemoved<span class="k2">[</span><span class="n">300</span><span class="k2">]</span><span class="k2">[</span><span class="n">300</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td><span class="k1">int</span> main<span class="k2">(</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/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>     </td></tr><tr><td class="number">16</td><td>     <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></td></tr><tr><td class="number">17</td><td>     <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></td></tr><tr><td class="number">18</td><td>     <a href="http://www.allegro.cc/manual/install_mouse" target="_blank"><span class="a">install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    </td></tr><tr><td class="number">20</td><td>     <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">8</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>     <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span> GFX_AUTODETECT_WINDOWED, <span class="n">800</span>, <span class="n">600</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>     </td></tr><tr><td class="number">23</td><td>     </td></tr><tr><td class="number">24</td><td>     <a href="http://www.allegro.cc/manual/set_window_title" target="_blank"><span class="a">set_window_title</span></a><span class="k2">(</span><span class="s">"Sandman's Dream"</span><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>     <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></td></tr><tr><td class="number">27</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">28</td><td>          </td></tr><tr><td class="number">29</td><td>          </td></tr><tr><td class="number">30</td><td>          </td></tr><tr><td class="number">31</td><td>          </td></tr><tr><td class="number">32</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">33</td><td><span class="k2">}</span></td></tr><tr><td class="number">34</td><td><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></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Durnus)</author>
		<pubDate>Sat, 02 Dec 2006 21:10:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;re trying to use an Allegro function before Allegro is initialized.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sat, 02 Dec 2006 22:27:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh jeez... I feel so stupid. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>Okay, thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Durnus)</author>
		<pubDate>Sat, 02 Dec 2006 22:29:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>One final tip. When something doesn&#39;t work, comment EVERYTHING in your main loop, then run the program. It should run fine since, well, nothing&#39;s happening! If it doesn&#39;t, your global variable initialization code is doing things it shouldn&#39;t. Then, start uncommenting sections one by one, compiling each time to see if it still runs or not. When it finally fails, then you have a better idea of what&#39;s causing an error like that.</p><p>Oh, and you don&#39;t need the semicolon on END_OF_MAIN().</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>Sun, 03 Dec 2006 05:08:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>And use an IDE with an integrated debugger <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Mon, 04 Dec 2006 04:41:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>... or lots of printf()&#39;s!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HoHo)</author>
		<pubDate>Mon, 04 Dec 2006 04:53:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I am using Dev-C++.</p><p>A segmentation error IS NOT A COMPILE ERROR.</p><p>It is fixed now, please leave this thread to die.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Durnus)</author>
		<pubDate>Mon, 04 Dec 2006 23:14:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The only thing I saw related to compile error is the ; after END_OF_MAIN. The other tips about commenting stuff out were debugging tips.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Tue, 05 Dec 2006 06:53:03 +0000</pubDate>
	</item>
</rss>
