<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>access violation-newbie tile map...</title>
		<link>http://www.allegro.cc/forums/view/588745</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 28 Nov 2006 23:48:38 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>greetings and salutations, all...</p><p>yet another &quot;I&#39;m new to yada yada yad...&quot;</p><p>here it goes...Im writing a map editor from a tutorial i got on the web.however, ive kind of developed a liking for some c++ stuff...so im modifying as i go.the tutorial is in c.</p><p>i get an access violation(segmentation fault) somewhere in my Map header file.  I cant quite seem to pinpoint it with the debugger...so here you guys go.im using Dev-C++ 4.9.9.2 with the current allegro devpak.</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;cstdio&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;fstream&gt;</span></td></tr><tr><td class="number">5</td><td><span class="p">#define TILE_SIZE 30</span></td></tr><tr><td class="number">6</td><td><span class="p">#define MAP_SIZE 14</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a><span class="k3">*</span> data<span class="k3">=</span><a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"editor_tiles.dat"</span><span class="k2">)</span><span class="k2">;</span></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">class</span> Tile</td></tr><tr><td class="number">14</td><td><span class="k2">{</span></td></tr><tr><td class="number">15</td><td>      public:</td></tr><tr><td class="number">16</td><td>             <span class="k1">bool</span> Walkable<span class="k2">;</span></td></tr><tr><td class="number">17</td><td>             <span class="k1">int</span> Image<span class="k2">;</span></td></tr><tr><td class="number">18</td><td>             Tile::Tile<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span>Image<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>Walkable<span class="k3">=</span>FALSE<span class="k2">;</span><span class="k2">}</span></td></tr><tr><td class="number">19</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td><span class="k1">class</span> Map</td></tr><tr><td class="number">23</td><td><span class="k2">{</span></td></tr><tr><td class="number">24</td><td>      </td></tr><tr><td class="number">25</td><td>      public:</td></tr><tr><td class="number">26</td><td>        Tile _tile<span class="k2">[</span>MAP_SIZE<span class="k2">]</span><span class="k2">[</span>MAP_SIZE<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>        <span class="k1">void</span> loadmap<span class="k2">(</span><span class="k1">char</span><span class="k3">*</span> _filename<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>        <span class="k1">void</span> savemap<span class="k2">(</span><span class="k1">char</span><span class="k3">*</span> _filename<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>        <span class="k1">void</span> drawmap<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> _temp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>&#160;</td></tr><tr><td class="number">32</td><td>&#160;</td></tr><tr><td class="number">33</td><td><span class="k1">void</span> Map::loadmap<span class="k2">(</span><span class="k1">char</span><span class="k3">*</span> _filename<span class="k2">)</span></td></tr><tr><td class="number">34</td><td><span class="k2">{</span></td></tr><tr><td class="number">35</td><td>     ifstream _file<span class="k2">(</span>_filename,ios::binary<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>     <span class="k1">int</span> i,j,_tile<span class="k2">;</span></td></tr><tr><td class="number">37</td><td>     <span class="k1">for</span><span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>i&gt;MAP_SIZE<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">38</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">39</td><td>         <span class="k1">for</span><span class="k2">(</span>j<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>j&gt;MAP_SIZE<span class="k2">;</span>j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">40</td><td>         <span class="k2">{</span></td></tr><tr><td class="number">41</td><td>             _file.read<span class="k2">(</span><span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span><span class="k2">)</span><span class="k3">&amp;</span>_tile,<span class="k1">sizeof</span><span class="k2">(</span>Tile<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>         <span class="k2">}</span></td></tr><tr><td class="number">43</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">44</td><td>     _file.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td><span class="k2">}</span></td></tr><tr><td class="number">46</td><td>&#160;</td></tr><tr><td class="number">47</td><td><span class="k1">void</span> Map::savemap<span class="k2">(</span><span class="k1">char</span><span class="k3">*</span> _filename<span class="k2">)</span></td></tr><tr><td class="number">48</td><td><span class="k2">{</span></td></tr><tr><td class="number">49</td><td>     ofstream _file<span class="k2">(</span>_filename,ios::binary<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>     <span class="k1">int</span> i,j,_tile<span class="k2">;</span></td></tr><tr><td class="number">51</td><td>     <span class="k1">for</span><span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>i&gt;MAP_SIZE<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</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>         <span class="k1">for</span><span class="k2">(</span>j<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>j&gt;MAP_SIZE<span class="k2">;</span>j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">54</td><td>         <span class="k2">{</span></td></tr><tr><td class="number">55</td><td>            _file.write<span class="k2">(</span><span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span><span class="k2">)</span><span class="k3">&amp;</span>_tile,<span class="k1">sizeof</span><span class="k2">(</span>Tile<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>         <span class="k2">}</span></td></tr><tr><td class="number">57</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">58</td><td>     _file.close<span class="k2">(</span><span class="k2">)</span><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><span class="k1">void</span> Map::drawmap<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> _temp<span class="k2">)</span></td></tr><tr><td class="number">62</td><td><span class="k2">{</span></td></tr><tr><td class="number">63</td><td>     <span class="k1">int</span> i,j,tile<span class="k2">;</span></td></tr><tr><td class="number">64</td><td>     <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">65</td><td>     </td></tr><tr><td class="number">66</td><td>     <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>i&gt;MAP_SIZE<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</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">for</span><span class="k2">(</span>j<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>j&gt;MAP_SIZE<span class="k2">;</span>j<span class="k3">+</span><span class="k3">+</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>             tile<span class="k3">=</span>_tile<span class="k3">&lt;</span>i&gt;<span class="k2">[</span>j<span class="k2">]</span>.Image<span class="k2">;</span></td></tr><tr><td class="number">71</td><td>             <span class="k1">if</span> <span class="k2">(</span>tile&gt;0<span class="k2">)</span></td></tr><tr><td class="number">72</td><td>             <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>_temp,<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>tile<span class="k2">]</span>.dat,i<span class="k3">*</span>TILE_SIZE,j<span class="k3">*</span>TILE_SIZE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>             <span class="k1">else</span></td></tr><tr><td class="number">74</td><td>             <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>_temp,i<span class="k3">*</span>TILE_SIZE,j<span class="k3">*</span>TILE_SIZE,i<span class="k3">*</span>TILE_SIZE<span class="k3">+</span>TILE_SIZE,j<span class="k3">*</span>TILE_SIZE<span class="k3">+</span>TILE_SIZE,<span class="n">0</span><span class="k2">)</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>     <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>_temp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">78</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

the c headers are from when i was using the c file system from the tutorial..i forgot to comment them out.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dorianin)</author>
		<pubDate>Sun, 26 Nov 2006 11:05:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
all your for (i=0;i&gt;MAP_SIZE;i++) should be for (i=0;i&lt;MAP_SIZE;i++) and the same for j too.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Sun, 26 Nov 2006 16:43:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>aright...did that...still getting the access violation...</p><p>...i narrowed it down to the datafile declaration...here the main.c 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 "C:/Dev-Cpp/Map_class.h"</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</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></td></tr><tr><td class="number">4</td><td><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a><span class="k3">*</span> data<span class="k3">=</span><a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"editor_tiles.dat"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>Map World<span class="k2">;</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="k1">void</span> init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td><span class="k1">void</span> deinit<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td><span class="k1">void</span> drawmap<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> _temp<span class="k2">)</span><span class="k2">;</span></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>    </td></tr><tr><td class="number">15</td><td>  init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>    drawmap<span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</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">20</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">21</td><td>       </td></tr><tr><td class="number">22</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">23</td><td>&#160;</td></tr><tr><td class="number">24</td><td>  deinit<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td><span class="k2">}</span></td></tr><tr><td class="number">27</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><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td><span class="k1">void</span> init<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">30</td><td>  </td></tr><tr><td class="number">31</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">32</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">32</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</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, <span class="n">640</span>, <span class="n">480</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">34</td><td>  clear<span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>  set_pallete<span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/RGB" target="_blank"><span class="a">RGB</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.dat<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>&#160;</td></tr><tr><td class="number">37</td><td>  <a href="http://www.allegro.cc/manual/install_timer" target="_blank"><span class="a">install_timer</span></a><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/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">39</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">40</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">640</span>,<span class="n">480</span><span class="k2">)</span><span class="k2">;</span></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>&#160;</td></tr><tr><td class="number">44</td><td><span class="k1">void</span> deinit<span class="k2">(</span><span class="k2">)</span> </td></tr><tr><td class="number">45</td><td><span class="k2">{</span></td></tr><tr><td class="number">46</td><td>  <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">47</td><td>  <a href="http://www.allegro.cc/manual/unload_datafile" target="_blank"><span class="a">unload_datafile</span></a><span class="k2">(</span>data<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>  </td></tr><tr><td class="number">50</td><td><span class="k2">}</span></td></tr><tr><td class="number">51</td><td>&#160;</td></tr><tr><td class="number">52</td><td><span class="k1">void</span> drawmap<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> _temp<span class="k2">)</span></td></tr><tr><td class="number">53</td><td><span class="k2">{</span></td></tr><tr><td class="number">54</td><td>     <span class="k1">int</span> i,j,tile<span class="k2">;</span></td></tr><tr><td class="number">55</td><td>     <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>NULL<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>     <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>i<span class="k3">&lt;</span>MAP_SIZE<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">58</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">59</td><td>         <span class="k1">for</span><span class="k2">(</span>j<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>j<span class="k3">&lt;</span>MAP_SIZE<span class="k2">;</span>j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">60</td><td>         <span class="k2">{</span></td></tr><tr><td class="number">61</td><td>             tile<span class="k3">=</span>World._tile<span class="k3">&lt;</span>i&gt;<span class="k2">[</span>j<span class="k2">]</span>.Image<span class="k2">;</span></td></tr><tr><td class="number">62</td><td>             <span class="k1">if</span> <span class="k2">(</span>tile&gt;0<span class="k2">)</span></td></tr><tr><td class="number">63</td><td>             <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>_temp,<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>tile<span class="k2">]</span>.dat,i<span class="k3">*</span>TILE_SIZE,j<span class="k3">*</span>TILE_SIZE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>             <span class="k1">else</span></td></tr><tr><td class="number">65</td><td>             <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>_temp,i<span class="k3">*</span>TILE_SIZE,j<span class="k3">*</span>TILE_SIZE,i<span class="k3">*</span>TILE_SIZE<span class="k3">+</span>TILE_SIZE,j<span class="k3">*</span>TILE_SIZE<span class="k3">+</span>TILE_SIZE,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">66</td><td>         <span class="k2">}</span></td></tr><tr><td class="number">67</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">68</td><td>     <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span>_temp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dorianin)</author>
		<pubDate>Sun, 26 Nov 2006 19:08:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
DATAFILE* data=load_datafile(&quot;editor_tiles.dat&quot;);
</p></div></div><p>

You are calling that globally. That&#39;s never a good idea...avoid global variables and assignments wherever possible. You are currently calling load_datafile before Allegro is even initialized. Try this instead:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>..</td></tr><tr><td class="number">2</td><td><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a><span class="k3">*</span> data <span class="k3">=</span> NULL<span class="k2">;</span> <span class="c">// use "NULL" so we can keep track of it's use.</span></td></tr><tr><td class="number">3</td><td>                       <span class="c">// it's all part of "good" pointer practice.</span></td></tr><tr><td class="number">4</td><td>..</td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">7</td><td><span class="k2">{</span></td></tr><tr><td class="number">8</td><td>  init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>  data <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"editor_tiles.dat"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>  ..</td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>  <a href="http://www.allegro.cc/manual/unload_datafile" target="_blank"><span class="a">unload_datafile</span></a><span class="k2">(</span>data<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>  ..</td></tr><tr><td class="number">14</td><td><span class="k2">}</span></td></tr><tr><td class="number">15</td><td>..</td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elverion)</author>
		<pubDate>Sun, 26 Nov 2006 19:51:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>perfect...that worked.thanks...</p><p>...now...to save my map ive got a function like so...</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> Map::savemap<span class="k2">(</span><span class="k1">char</span><span class="k3">*</span> _filename<span class="k2">)</span>
<span class="k2">{</span>
     FILE<span class="k3">*</span> file<span class="k2">;</span>
     file<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span>filename,<span class="s">"wb"</span><span class="k2">)</span><span class="k2">;</span>
     <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span>Map,<span class="k1">sizeof</span><span class="k2">(</span>Tile<span class="k2">)</span>,MAP_SIZE<span class="k3">*</span>MAP_SIZE,file<span class="k2">)</span><span class="k2">;</span>
     <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>file<span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

however...nothing happens...I believe my parameters may be wonky...but nothing shows up in compiling, debugging or running...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dorianin)</author>
		<pubDate>Tue, 28 Nov 2006 02:41:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s not a very good way to save your maps. If you are sure you want to do it that way, check into reinterpret_cast. Keep in mind that this would cause endianess problems, and the saved maps would not work with your program if compiled under a different compiler. I suggest you just go about writing your own save function. It&#39;s basically just something like this:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>  <span class="c">// loop through all of the rows</span></td></tr><tr><td class="number">2</td><td>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> MAP_HEIGHT<span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">3</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">4</td><td>    <span class="c">// make a container for the current row</span></td></tr><tr><td class="number">5</td><td>    MapTile MapRow<span class="k2">[</span>MAP_WIDTH<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> MAP_WIDTH<span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">7</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>      <span class="c">//copy the tile into the container</span></td></tr><tr><td class="number">9</td><td>      MapRow<span class="k3">&lt;</span>i&gt; <span class="k3">=</span> GetTile<span class="k2">(</span>x, y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>        <span class="c">// GetTile would return a MapTile at the specified</span></td></tr><tr><td class="number">11</td><td>        <span class="c">// position. You should probably just copy that</span></td></tr><tr><td class="number">12</td><td>        <span class="c">// information from however you store your tiles.</span></td></tr><tr><td class="number">13</td><td>        <span class="c">// ex: arrays, vectors, etc.</span></td></tr><tr><td class="number">14</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td>    <span class="c">//write the container to a file</span></td></tr><tr><td class="number">17</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span>MapRow, <span class="k1">sizeof</span><span class="k2">(</span>MapTile<span class="k2">)</span>, MAP_WIDTH, file<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  <span class="k2">}</span></td></tr></tbody></table></div></div><p>

You could, of course, optimize the performance of the function by using a single for loop, and using div and mod to extract the x and y positions from a single variable.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elverion)</author>
		<pubDate>Tue, 28 Nov 2006 03:08:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> Map::savemap<span class="k2">(</span><span class="k1">char</span><span class="k3">*</span> _filename<span class="k2">)</span>
<span class="k2">{</span>
     FILE<span class="k3">*</span> file<span class="k2">;</span>
     file<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span>filename,<span class="s">"wb"</span><span class="k2">)</span><span class="k2">;</span>
     <a href="http://www.delorie.com/djgpp/doc/libc/libc_371.html" target="_blank">fwrite</a><span class="k2">(</span>Map,<span class="k1">sizeof</span><span class="k2">(</span>Tile<span class="k2">)</span>,MAP_SIZE<span class="k3">*</span>MAP_SIZE,file<span class="k2">)</span><span class="k2">;</span>
     <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>file<span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
The parameter to the function is &#39;_filename&#39; yet you&#39;re passing &#39;filename&#39; to fopen.</p><p>Btw, if you&#39;re using C++ why not use C++&#39;s file operators instead of C&#39;s file operators?
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> Map::savemap<span class="k2">(</span><span class="k1">char</span><span class="k3">*</span> _filename<span class="k2">)</span>
<span class="k2">{</span>
     ofstream file<span class="k2">(</span>_filename, ios::out <span class="k3">|</span> ios::binary<span class="k2">)</span><span class="k2">;</span>
     file.write<span class="k2">(</span>Map,<span class="k1">sizeof</span><span class="k2">(</span>Tile<span class="k2">)</span><span class="k3">*</span>MAP_SIZE<span class="k3">*</span>MAP_SIZE<span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Tue, 28 Nov 2006 04:38:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>hey...your right...wonderwhy the compiler didn&#39;t catch that...</p><p>i had originally tried to use thee c++ file system, but the ios:: operaters stymied me a bit...but that seems very nice...thank you all for the help...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dorianin)</author>
		<pubDate>Tue, 28 Nov 2006 23:48:38 +0000</pubDate>
	</item>
</rss>
