<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Problem with drawing inventory</title>
		<link>http://www.allegro.cc/forums/view/603821</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 21 Apr 2010 03:58:13 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok I have been working on this for a few days all I am trying to do at this point is get the inventory section of the code to run properly.  I have pretty much all the support code in so I started on the draw routines.  So all is going well I have the layout displaying and the key input working now I go test to display an item and the program crashes - ok well thats odd so I figure it is bad code somewhere after many hours of testing I can not find bad code and when testing in the main redraw for the game it works fine same code different result is there ANYTHING that would make a blit crash in one funtion and work in another?</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="k1">void</span> Run_Inventory<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    Item <span class="k3">*</span>dispitem<span class="k2">;</span>
<span class="number">  4</span>    dispitem <span class="k3">=</span> resman-&gt;Get_Item<span class="k2">(</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">//just giving it a picture to display</span>
<span class="number">  5</span>  <span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_I<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>  
<span class="number">  7</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_I<span class="k2">]</span><span class="k2">)</span>
<span class="number">  8</span>  <span class="k2">{</span>
<span class="number">  9</span>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>LAYOUT,BUFFER,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,scrx,scry<span class="k2">)</span><span class="k2">;</span>    <span class="c">//toss the backdrop up.</span>
<span class="number"> 10</span>    <a href="http://www.allegro.cc/manual/masked_blit" target="_blank"><span class="a">masked_blit</span></a><span class="k2">(</span>INVENTORY,BUFFER,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,scrx,scry<span class="k2">)</span><span class="k2">;</span>   <span class="c">//toss the grids.</span>
<span class="number"> 11</span>        
<span class="number"> 12</span>        <a href="http://www.allegro.cc/manual/masked_blit" target="_blank"><span class="a">masked_blit</span></a><span class="k2">(</span>dispitem-&gt;GetPic<span class="k2">(</span><span class="k2">)</span>,BUFFER,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">64</span>,<span class="n">64</span><span class="k2">)</span><span class="k2">;</span><span class="c">//crash here this line does it</span>
<span class="number"> 13</span>    <span class="c">//DRAW INVENTORY</span>
<span class="number"> 14</span>    
<span class="number"> 15</span>        <span class="c">//END DRAW INVENTORY</span>
<span class="number"> 16</span>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>BUFFER,<a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,scrx,scry<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>    <span class="k2">}</span>
<span class="number"> 18</span>  <span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_I<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>
<span class="number"> 20</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (David Sopala)</author>
		<pubDate>Mon, 19 Apr 2010 13:42:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Are you sure the dispitem pointer (or resman?) isn&#39;t null or erronious in one of the functions? You should probably use <span class="source-code"><a href="http://www.allegro.cc/manual/ASSERT" target="_blank"><span class="a">ASSERT</span></a></span> for some degree of assurance for all sorts of pointer work. Also investigate what GetPic() returns. If the function is the same elsewhere, that may not tell you what the problem is but it would narrow it down slightly. Maybe try printing out and comparing the pointers with what the other function uses.</p><p>note: [code] blocks now use &lt; and &gt;  like HTML here.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ben Delacob)</author>
		<pubDate>Mon, 19 Apr 2010 15:17:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Completely sure of that resman is just a resource manager so when it loads the items and spells etc in it must be declared(it is actually a global wrapper more or less).  </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 RESMAN_H</span>
<span class="number">  2</span><span class="p">#define RESMAN_H</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="p">#include "Item.h"</span>
<span class="number">  5</span><span class="p">#include "spell.h"</span>
<span class="number">  6</span><span class="k1">class</span> resource_manager
<span class="number">  7</span><span class="k2">{</span>
<span class="number">  8</span>    public:
<span class="number">  9</span>           resource_manager<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>           ~resource_manager<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>      <span class="k1">void</span> Load_Items<span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span>ItemFilePath<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>      <span class="k1">void</span> Load_Spells<span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span>SpellFilePath<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>      Item <span class="k3">*</span>Get_Item<span class="k2">(</span><span class="k1">int</span> which<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>      Spell <span class="k3">*</span>Get_Spell<span class="k2">(</span><span class="k1">int</span> which<span class="k2">)</span><span class="k2">;</span>     
<span class="number"> 15</span>      <span class="k1">int</span> GetNumSpell<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>      <span class="k1">int</span> GetNumItem<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>    private:
<span class="number"> 18</span>      <span class="k1">int</span> Num_Item<span class="k2">;</span>
<span class="number"> 19</span>      <span class="k1">int</span> Num_Spell<span class="k2">;</span>
<span class="number"> 20</span>      Item <span class="k3">*</span><span class="k3">*</span>Item_List<span class="k2">;</span>
<span class="number"> 21</span>      Spell <span class="k3">*</span><span class="k3">*</span>Spell_List<span class="k2">;</span>  
<span class="number"> 22</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 23</span>
<span class="number"> 24</span>
<span class="number"> 25</span><span class="p">#endif</span>
</div></div><p>

</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 "resman.h"</span>
<span class="number">   2</span><span class="p">#include &lt;fstream&gt;</span>
<span class="number">   3</span>
<span class="number">   4</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">   5</span>resource_manager::resource_manager<span class="k2">(</span><span class="k2">)</span>
<span class="number">   6</span><span class="k2">{</span>
<span class="number">   7</span>    Num_Item <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">   8</span>    Num_Spell <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">   9</span>    Item_List <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  10</span>    Spell_List <span class="k3">=</span> NULL<span class="k2">;</span>              
<span class="number">  11</span><span class="k2">}</span>          
<span class="number">  12</span>resource_manager::~resource_manager<span class="k2">(</span><span class="k2">)</span>
<span class="number">  13</span><span class="k2">{</span>
<span class="number">  14</span>    <span class="k1">if</span><span class="k2">(</span>Item_List<span class="k2">)</span>
<span class="number">  15</span>    <span class="k2">{</span>
<span class="number">  16</span>         <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> Num_Item<span class="k2">;</span>x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  17</span>         <span class="k2">{</span>
<span class="number">  18</span>            <span class="k1">delete</span> Item_List<span class="k2">[</span>x<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">delete</span><span class="k2">[</span><span class="k2">]</span> Item_List<span class="k2">;</span>        
<span class="number">  21</span>    <span class="k2">}</span>  
<span class="number">  22</span>    <span class="k1">if</span><span class="k2">(</span>Spell_List<span class="k2">)</span>
<span class="number">  23</span>    <span class="k2">{</span>
<span class="number">  24</span>         <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> Num_Spell<span class="k2">;</span>x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  25</span>         <span class="k2">{</span>
<span class="number">  26</span>            <span class="k1">delete</span> Spell_List<span class="k2">[</span>x<span class="k2">]</span><span class="k2">;</span>        
<span class="number">  27</span>         <span class="k2">}</span>
<span class="number">  28</span>         <span class="k1">delete</span><span class="k2">[</span><span class="k2">]</span> Spell_List<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> resource_manager::Load_Items<span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span>ItemFilePath<span class="k2">)</span>
<span class="number">  32</span><span class="k2">{</span>
<span class="number">  33</span>    <span class="k1">int</span> loadarray<span class="k2">[</span><span class="n">17</span><span class="k2">]</span><span class="k2">;</span> 
<span class="number">  34</span>    <span class="k1">char</span> temp<span class="k2">[</span><span class="n">255</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  35</span>    ifstream loadstream<span class="k2">;</span>
<span class="number">  36</span>    loadstream.open<span class="k2">(</span>ItemFilePath<span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>    loadstream&gt;&gt;Num_Item<span class="k2">;</span>
<span class="number">  38</span>    Item_List <span class="k3">=</span> <span class="k1">new</span> Item<span class="k3">*</span><span class="k2">[</span>Num_Item<span class="k2">]</span><span class="k2">;</span>
<span class="number">  39</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> lcv <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>lcv <span class="k3">&lt;</span> Num_Item<span class="k2">;</span>lcv<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  40</span>    <span class="k2">{</span>
<span class="number">  41</span>       Item_List<span class="k2">[</span>lcv<span class="k2">]</span> <span class="k3">=</span> <span class="k1">new</span> Item<span class="k2">;</span>        
<span class="number">  42</span>    <span class="k2">}</span>
<span class="number">  43</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> lcv <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>lcv <span class="k3">&lt;</span> Num_Item<span class="k2">;</span>lcv<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  44</span>    <span class="k2">{</span>
<span class="number">  45</span>        loadstream&gt;&gt;loadarray<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">&gt;</span><span class="k3">&gt;</span>temp<span class="k2">;</span>
<span class="number">  46</span>        Item_List<span class="k2">[</span>lcv<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>SetItemName<span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span>
<span class="number">  47</span>        loadstream&gt;&gt;temp<span class="k2">;</span>
<span class="number">  48</span>        Item_List<span class="k2">[</span>lcv<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>SetPicPath<span class="k2">(</span>temp,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>        <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> zz<span class="k3">=</span><span class="n">1</span><span class="k2">;</span>zz <span class="k3">&lt;</span> <span class="n">12</span><span class="k2">;</span>zz<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  50</span>        <span class="k2">{</span>
<span class="number">  51</span>            loadstream&gt;&gt;loadarray<span class="k2">[</span>zz<span class="k2">]</span><span class="k2">;</span>
<span class="number">  52</span>        <span class="k2">}</span>    
<span class="number">  53</span>        loadarray<span class="k2">[</span><span class="n">12</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  54</span>        loadarray<span class="k2">[</span><span class="n">13</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  55</span>        loadarray<span class="k2">[</span><span class="n">14</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  56</span>        loadarray<span class="k2">[</span><span class="n">15</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  57</span>        loadarray<span class="k2">[</span><span class="n">16</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  58</span>        Item_List<span class="k2">[</span>lcv<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>LOAD<span class="k2">(</span>loadarray<span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span>        loadstream&gt;&gt;temp<span class="k2">;</span>
<span class="number">  60</span>             
<span class="number">  61</span>        Item_List<span class="k2">[</span>lcv<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>SetUseSnd<span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>        loadstream&gt;&gt;temp<span class="k2">;</span>
<span class="number">  63</span>             
<span class="number">  64</span>        Item_List<span class="k2">[</span>lcv<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>SetSwingSnd<span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span>
<span class="number">  65</span>        loadstream&gt;&gt;temp<span class="k2">;</span>
<span class="number">  66</span>             
<span class="number">  67</span>        Item_List<span class="k2">[</span>lcv<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>SetHitSnd<span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>        loadstream&gt;&gt;temp<span class="k2">;</span>
<span class="number">  69</span>            
<span class="number">  70</span>        Item_List<span class="k2">[</span>lcv<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>SetMissSnd<span class="k2">(</span>temp<span class="k2">)</span><span class="k2">;</span>     
<span class="number">  71</span>    <span class="k2">}</span>    
<span class="number">  72</span>    loadstream.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>  
<span class="number">  73</span><span class="k2">}</span>
<span class="number">  74</span><span class="k1">void</span> resource_manager::Load_Spells<span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span>SpellFilePath<span class="k2">)</span>
<span class="number">  75</span><span class="k2">{</span>
<span class="number">  76</span>    <span class="k1">char</span> temp<span class="k2">[</span><span class="n">255</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  77</span>    <span class="k1">int</span> loadarray<span class="k2">[</span><span class="n">10</span><span class="k2">]</span><span class="k2">;</span> 
<span class="number">  78</span>    ifstream loadstream<span class="k2">;</span>
<span class="number">  79</span>    loadstream.open<span class="k2">(</span>SpellFilePath<span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>    loadstream&gt;&gt;Num_Spell<span class="k2">;</span> 
<span class="number">  81</span>    Spell_List <span class="k3">=</span> <span class="k1">new</span> Spell<span class="k3">*</span><span class="k2">[</span>Num_Spell<span class="k2">]</span><span class="k2">;</span>
<span class="number">  82</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> z<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>z<span class="k3">&lt;</span>Num_Spell<span class="k2">;</span>z<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  83</span>  <span class="k2">{</span>
<span class="number">  84</span>      loadstream&gt;&gt;loadarray<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k3">&gt;</span><span class="k3">&gt;</span>temp&gt;&gt;loadarray<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k3">&gt;</span><span class="k3">&gt;</span>loadarray<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k3">&gt;</span><span class="k3">&gt;</span>loadarray<span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k3">&gt;</span><span class="k3">&gt;</span>loadarray<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k3">&gt;</span><span class="k3">&gt;</span>loadarray<span class="k2">[</span><span class="n">5</span><span class="k2">]</span><span class="k3">&gt;</span><span class="k3">&gt;</span>loadarray<span class="k2">[</span><span class="n">6</span><span class="k2">]</span><span class="k3">&gt;</span><span class="k3">&gt;</span>loadarray<span class="k2">[</span><span class="n">7</span><span class="k2">]</span><span class="k3">&gt;</span><span class="k3">&gt;</span>loadarray<span class="k2">[</span><span class="n">8</span><span class="k2">]</span><span class="k3">&gt;</span><span class="k3">&gt;</span>loadarray<span class="k2">[</span><span class="n">9</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  85</span>      Spell_List<span class="k2">[</span>z<span class="k2">]</span> <span class="k3">=</span> <span class="k1">new</span> Spell<span class="k2">(</span>temp,loadarray<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>,loadarray<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>,loadarray<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>,loadarray<span class="k2">[</span><span class="n">6</span><span class="k2">]</span>,loadarray<span class="k2">[</span><span class="n">7</span><span class="k2">]</span>,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>  <span class="k2">}</span>
<span class="number">  87</span>  loadstream.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  88</span><span class="k2">}</span>
<span class="number">  89</span>Item<span class="k3">*</span> resource_manager::Get_Item<span class="k2">(</span><span class="k1">int</span> which<span class="k2">)</span>
<span class="number">  90</span><span class="k2">{</span>
<span class="number">  91</span>    <span class="k1">if</span><span class="k2">(</span>which <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> which <span class="k3">&lt;</span> Num_Item<span class="k2">)</span><span class="k1">return</span> Item_List<span class="k2">[</span>which<span class="k2">]</span><span class="k2">;</span>  
<span class="number">  92</span><span class="k2">}</span>
<span class="number">  93</span>Spell<span class="k3">*</span> resource_manager::Get_Spell<span class="k2">(</span><span class="k1">int</span> which<span class="k2">)</span>
<span class="number">  94</span><span class="k2">{</span>
<span class="number">  95</span>    <span class="k1">if</span><span class="k2">(</span>which <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> which <span class="k3">&lt;</span> Num_Spell<span class="k2">)</span><span class="k1">return</span> Spell_List<span class="k2">[</span>which<span class="k2">]</span><span class="k2">;</span> 
<span class="number">  96</span><span class="k2">}</span>
<span class="number">  97</span><span class="k1">int</span> resource_manager::GetNumSpell<span class="k2">(</span><span class="k2">)</span>
<span class="number">  98</span><span class="k2">{</span>
<span class="number">  99</span>    <span class="k1">return</span> Num_Spell<span class="k2">;</span> 
<span class="number"> 100</span><span class="k2">}</span>
<span class="number"> 101</span><span class="k1">int</span> resource_manager::GetNumItem<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 102</span><span class="k2">{</span>
<span class="number"> 103</span>    <span class="k1">return</span> Num_Item<span class="k2">;</span> 
<span class="number"> 104</span><span class="k2">}</span>
</div></div><p>

</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">class</span> Item
<span class="k2">{</span>
public:
<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> GetPic<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="c">//other stuff</span>
private:
<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> PIC<span class="k2">;</span>
<span class="c">//other stuff</span>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>

Constructor sets PIC to NULL just in case.  Destructor kills it with destroy_bitmap();.<br />Assignment sets PIC = rhs.PIC;.  </p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> Item::GetPic<span class="k2">(</span><span class="k2">)</span>  <span class="c">//gives the display picture</span>
<span class="k2">{</span>
   <span class="k1">return</span> PIC<span class="k2">;</span>        
<span class="k2">}</span>
</pre></div></div><p>

</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> Item::SetPicPath<span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span>path,<a href="http://www.allegro.cc/manual/RGB" target="_blank"><span class="a">RGB</span></a> <span class="k3">*</span>pal<span class="k2">)</span>
<span class="k2">{</span>
    <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_754.html" target="_blank">strcmp</a><span class="k2">(</span>path,<span class="s">"NULL"</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
    <span class="k2">{</span> 
      <span class="k1">if</span><span class="k2">(</span>PIC<span class="k2">)</span><a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>PIC<span class="k2">)</span><span class="k2">;</span>
      picpath <span class="k3">=</span> <span class="k1">new</span> <span class="k1">char</span><span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_764.html" target="_blank">strlen</a><span class="k2">(</span>path<span class="k2">)</span><span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span>
      <a href="http://www.delorie.com/djgpp/doc/libc/libc_756.html" target="_blank">strcpy</a><span class="k2">(</span>picpath,path<span class="k2">)</span><span class="k2">;</span>
        PIC <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span>picpath,pal<span class="k2">)</span><span class="k2">;</span>
        <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>PIC<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">"ERROR LOADING ITEM"</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (David Sopala)</author>
		<pubDate>Mon, 19 Apr 2010 20:36:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Have you tried isolating the whole item and resource manager code into another program and test if it works? </p><p>Also, another non-related memory leak, in <span class="source-code">Item::SetPicPath</span>, you&#39;re allocating <span class="source-code">picpath</span>, but you never <span class="source-code"><span class="k1">delete</span></span> it.</p><p>Also, you&#39;re using C++... use <span class="source-code">std::string</span> and call it a day for any char related functions. ( <span class="source-code">.c_str<span class="k2">(</span><span class="k2">)</span></span> will solve your problems with them).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Mon, 19 Apr 2010 22:38:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Normally I use char arrays because they seem more natural to me I still use the strcat cmp cpy etc commands I have no idea why they seem more natural, but thats a side point from the issue.</p><p>As for isolating the problem I have two global functions.  One to redraw the map play npcs monsters etc and one for inventory management(the one I am working on).</p><p>If I try to masked_blit into the first function it works fine.</p><p>If I try to use it in the inventory function it dies horribly.  </p><p>Thanks for the memory leak I will go fix that right now.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (David Sopala)</author>
		<pubDate>Tue, 20 Apr 2010 00:01:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>check your arrays. It sounds like your going out bounce.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (piccolo)</author>
		<pubDate>Tue, 20 Apr 2010 03:16:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I would expect to see a memory referance to the crash not that the program has stopped responding on an array issue note that when I load and allocate my arrays I save the variable - for how many things are in the array and use that to compare in all the redraws and access to said array.</p><p>UPDATE:</p><p>I am very confused now - I have my code working - in part now for an allegro specific question.</p><p>Would having SAMPLE * and BITMAP * in the same class give issues where calls to that class trying to get a pointer will crash it?</p><p>I commented out all my SAMPLE * code (since I haven&#39;t implemented sound yet) and the BITMAP * Code works 100% if I put the SAMPLE * back in there it will crash when returning BITMAP * ideas?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (David Sopala)</author>
		<pubDate>Wed, 21 Apr 2010 02:17:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Are you using an IDE? Which one? You&#39;re not using Dev-C++ by any chance are you?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Wed, 21 Apr 2010 02:23:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, bloodshed why?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (David Sopala)</author>
		<pubDate>Wed, 21 Apr 2010 02:30:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Did you try a full recompile when modifying the headers? Dev-C++ is kind of stupid when it comes to compiling with F9 when you modify a header. You see, you need to compile each source that includes the header for making the changes effective.</p><p>Dev-C++ won&#39;t recompile the sources needed automatically unlike all other standard IDEs. The only way is to hunt them yourself and delete the objects, or do a full recompile and call it a day.</p><p>Try a full recompile. CTRL+F11</p><p>EDIT: Also, I&#39;d suggest switching to a much better IDE. Code::Blocks(Works with MinGW) and Microsoft Visual C++ Express are 2 good options. AFAIK, C::B can import your old Dev-C++ project.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Wed, 21 Apr 2010 02:33:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Dev++ normal stuff to compile</p><p>Clean - because I can&#39;t trust it <br />Rebuild All </p><p>Edit:  I never use f9
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (David Sopala)</author>
		<pubDate>Wed, 21 Apr 2010 02:35:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ah, that&#39;s OK. You see, the situation you described about adding the SAMPLE in the class was that led me to believe that.</p><p>Then I don&#39;t really have a clue what&#39;s the problem.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Wed, 21 Apr 2010 02:51:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Installed codeblocks;<br />uncommented SAMPLE* lines;<br />Compiled with codeblocks;<br />Code works - wtf does dev-C++ do or not do correctly in this situation?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (David Sopala)</author>
		<pubDate>Wed, 21 Apr 2010 03:00:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/603821/861731#target">David Sopala</a> said:</div><div class="quote"><p> wtf does dev-C++ do or not do correctly in this situation?</p></div></div><p>Who knows. Dev-C++ was outdated years ago, and nobody should use it any more.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Wed, 21 Apr 2010 03:58:13 +0000</pubDate>
	</item>
</rss>
