<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>My vector has lost it&#39;s Bitmaps!</title>
		<link>http://www.allegro.cc/forums/view/590617</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 20 Mar 2007 07:00:38 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have a small question about vectors.  I recently started using them but i&#39;m having some trouble.  I have a Sprite class and I made a vector of these sprites</p><p>vector&lt;Sprite&gt; Sprites;</p><p>but that&#39;s not the problem, the vector works fine.  It&#39;s when I make a new sprite and add it into the vector for some reason the Bitmap data from the sprite is lost, or something.</p><p>I was using a for loop to draw the sprites
</p><div class="source-code snippet"><div class="inner"><pre>
<span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k2">;</span>i<span class="k3">&lt;</span>Sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
        <span class="k2">{</span>            
            <a href="http://www.allegro.cc/manual/masked_blit" target="_blank"><span class="a">masked_blit</span></a><span class="k2">(</span>Sprites.at<span class="k2">(</span>i<span class="k2">)</span>.image,buffer,spos,sypos,x,y,<span class="n">16</span>,<span class="n">20</span><span class="k2">)</span><span class="k2">;</span>
        <span class="k2">}</span>
</pre></div></div><p>

but like I said. when I do this it doesn&#39;t draw the sprite.<br />I also tried loading the sprite into a temporary sprite.
</p><div class="source-code snippet"><div class="inner"><pre>
<span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k2">;</span>i<span class="k3">&lt;</span>Sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
        <span class="k2">{</span>
            pSprite<span class="k3">=</span>Sprites.at<span class="k2">(</span>i<span class="k2">)</span><span class="k2">;</span>
            <a href="http://www.allegro.cc/manual/masked_blit" target="_blank"><span class="a">masked_blit</span></a><span class="k2">(</span>pSprite.image,buffer,spos,sypos,x,y,<span class="n">16</span>,<span class="n">20</span><span class="k2">)</span><span class="k2">;</span>
        <span class="k2">}</span>
</pre></div></div><p>

but that doesn&#39;t work either.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Taiko Keiji)</author>
		<pubDate>Mon, 19 Mar 2007 19:57:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Let me guess; your Sprite class does destroy_bitmap in its destructor. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>Either don&#39;t do that, or implement complete copy semantics, or store pointers to sprites instead of sprites.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Mon, 19 Mar 2007 20:03:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If the bitmap was messed up, wouldn&#39;t it crash the program?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Archon)</author>
		<pubDate>Mon, 19 Mar 2007 20:05:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, first. My destructor doesn&#39;t destroy anything. It may just be that I&#39;m having the program draw the bitmap wrong or something because if it didn&#39;t load the bitmap i would expect it to crash aswell.  I have no idea other than that.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Taiko Keiji)</author>
		<pubDate>Mon, 19 Mar 2007 20:16:28 +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">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k2">;</span>i<span class="k3">&lt;</span>Sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></span>
</p></div></div><p>

You&#39;re using variable <tt>i</tt> that is not initialized. Bad thing!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Indeterminatus)</author>
		<pubDate>Mon, 19 Mar 2007 20:17:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Then show the Sprite class.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Mon, 19 Mar 2007 20:19:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think Indeterminatus is somewhat right. You should use int for( int i=0; </p><p>And X-G is right too. Show us the class.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Mon, 19 Mar 2007 20:22:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What do you mean I isn&#39;t initialized?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Taiko Keiji)</author>
		<pubDate>Mon, 19 Mar 2007 20:25:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
... exactly what he said. You declare <i>int i</i> in the for loop, but you never initialize it to 0. Also, you&#39;re not listening, because you didn&#39;t post your Sprite class.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Mon, 19 Mar 2007 20:26:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I initialized i, don&#39;t know how I forgot.<br />Heres my sprite class if you dearly want to see it.
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>&#160;</td></tr><tr><td class="number">2</td><td><span class="p">#ifndef _SPRITECLASS_H_</span></td></tr><tr><td class="number">3</td><td><span class="p">#define _SPRITECLASS_H_</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">6</td><td><span class="p">#include &lt;vector&gt;</span></td></tr><tr><td class="number">7</td><td><span class="p">#include "globals.h"</span></td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td><span class="c">//---------------------The Class itself----------------------------------------</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td><span class="k1">class</span> Sprite</td></tr><tr><td class="number">12</td><td><span class="k2">{</span></td></tr><tr><td class="number">13</td><td>    protected:</td></tr><tr><td class="number">14</td><td>        <span class="k1">int</span> Frames,</td></tr><tr><td class="number">15</td><td>            Dir,</td></tr><tr><td class="number">16</td><td>            CurFrame,</td></tr><tr><td class="number">17</td><td>            HP,</td></tr><tr><td class="number">18</td><td>            MaxHP,</td></tr><tr><td class="number">19</td><td>            MP,</td></tr><tr><td class="number">20</td><td>            MaxMP,</td></tr><tr><td class="number">21</td><td>            Special,</td></tr><tr><td class="number">22</td><td>            MaxSpecial,</td></tr><tr><td class="number">23</td><td>            xPos,</td></tr><tr><td class="number">24</td><td>            yPos,</td></tr><tr><td class="number">25</td><td>            xscreen,</td></tr><tr><td class="number">26</td><td>            yscreen,</td></tr><tr><td class="number">27</td><td>            attrad,</td></tr><tr><td class="number">28</td><td>            magrad,</td></tr><tr><td class="number">29</td><td>            aggression,</td></tr><tr><td class="number">30</td><td>            defense,</td></tr><tr><td class="number">31</td><td>            magdef,</td></tr><tr><td class="number">32</td><td>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_299.html" target="_blank">exp</a>,</td></tr><tr><td class="number">33</td><td>            maxExp<span class="k2">;</span>           </td></tr><tr><td class="number">34</td><td>            <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> image<span class="k2">;</span></td></tr><tr><td class="number">35</td><td>&#160;</td></tr><tr><td class="number">36</td><td>    public:</td></tr><tr><td class="number">37</td><td>        Sprite<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>        Sprite<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> Image<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>        Sprite<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> Image,<span class="k1">int</span> XPos,<span class="k1">int</span> YPos,<span class="k1">int</span> frames<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>        Sprite<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> Image,<span class="k1">int</span> Hp,<span class="k1">int</span> Mp,<span class="k1">int</span> special,<span class="k1">int</span> XPos,<span class="k1">int</span> YPos, <span class="k1">int</span> AttRad,<span class="k1">int</span> MagRad,<span class="k1">int</span> Agg,</td></tr><tr><td class="number">41</td><td>                <span class="k1">int</span> Def,<span class="k1">int</span> MagDef,<span class="k1">int</span> frames<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>        Sprite<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> Image,<span class="k1">int</span> Hp,<span class="k1">int</span> Mp,<span class="k1">int</span> special,<span class="k1">int</span> XPos,<span class="k1">int</span> YPos, <span class="k1">int</span> AttRad,<span class="k1">int</span> MagRad,<span class="k1">int</span> Agg,</td></tr><tr><td class="number">43</td><td>                <span class="k1">int</span> Def,<span class="k1">int</span> MagDef,<span class="k1">int</span> experience,<span class="k1">int</span> maxexperience,<span class="k1">int</span> frames<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>        <span class="k1">virtual</span> ~Sprite<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>        <span class="k1">void</span> level_up<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>        <span class="k1">void</span> edit_hp<span class="k2">(</span><span class="k1">int</span> amt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>        <span class="k1">void</span> edit_mp<span class="k2">(</span><span class="k1">int</span> amt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>        <span class="k1">void</span> edit_mhp<span class="k2">(</span><span class="k1">int</span> amt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>        <span class="k1">void</span> edit_mmp<span class="k2">(</span><span class="k1">int</span> amt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>        <span class="k1">void</span> edit_special<span class="k2">(</span><span class="k1">int</span> amt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td>        <span class="k1">void</span> edit_mspecial<span class="k2">(</span><span class="k1">int</span> amt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>        <span class="k1">void</span> edit_xpos<span class="k2">(</span><span class="k1">int</span> amt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>        <span class="k1">void</span> edit_ypos<span class="k2">(</span><span class="k1">int</span> amt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>        <span class="k1">void</span> edit_xscreen<span class="k2">(</span><span class="k1">int</span> amt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td>        <span class="k1">void</span> edit_yscreen<span class="k2">(</span><span class="k1">int</span> amt<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">int</span> GetFrames<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> Frames<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">58</td><td>        <span class="k1">int</span> GetDir<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> Dir<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">59</td><td>        <span class="k1">int</span> GetCurFrame<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> CurFrame<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">60</td><td>        <span class="k1">int</span> GetHP<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> HP<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>        <span class="k1">int</span> GetMaxHP<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> MaxHP<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">62</td><td>        <span class="k1">int</span> GetMP<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> MP<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td>        <span class="k1">int</span> GetMaxMP<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> MaxMP<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>        <span class="k1">int</span> GetSpecial<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> Special<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">65</td><td>        <span class="k1">int</span> GetMaxSpecial<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> MaxSpecial<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">66</td><td>        <span class="k1">int</span> GetxPos<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> xPos<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>        <span class="k1">int</span> GetyPos<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> yPos<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>        <span class="k1">int</span> Getxscreen<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> xscreen<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>        <span class="k1">int</span> Getyscreen<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> yscreen<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>        <span class="k1">int</span> Getattrad<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> attrad<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>        <span class="k1">int</span> Getmagrad<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> magrad<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>        <span class="k1">int</span> Getaggression<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> aggression<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>        <span class="k1">int</span> Getdefense<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> defense<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>        <span class="k1">int</span> Getmagdef<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> magdef<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>        <span class="k1">int</span> Getexp<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_299.html" target="_blank">exp</a><span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">76</td><td>        <span class="k1">int</span> GetmaxExp<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> maxExp<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>        <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> GetImage<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> image<span class="k2">;</span><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">78</td><td><span class="k2">}</span><span class="k2">;</span></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">void</span> add_sprite<span class="k2">(</span>Sprite<span class="k3">*</span> sname<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">82</td><td>&#160;</td></tr><tr><td class="number">83</td><td><span class="p">#endif</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Taiko Keiji)</author>
		<pubDate>Mon, 19 Mar 2007 20:31:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Actually the contents of ~Sprite() and Sprite() are the things that matter anything. Function names don&#39;t say much of what is going on in the functions themselves.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HoHo)</author>
		<pubDate>Mon, 19 Mar 2007 20:37:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I initialized i, don&#39;t know how I forgot.
</p></div></div><p>
<span class="source-code"><span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k2">;</span>i<span class="k3">&lt;</span>Sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></span><br />What do you think i starts at in the above code?  Maybe it&#39;s 32423, or maybe 5436345, it. Is. Not. Initialized.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Onewing)</author>
		<pubDate>Mon, 19 Mar 2007 20:41:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I got it figured out.  Thanks for trying guys.  I cant particularly say what it was but I think it has to do with the fact that I didn&#39;t initialize i.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Taiko Keiji)</author>
		<pubDate>Mon, 19 Mar 2007 20:43:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I got it figured out. (...) I cant particularly say what it was but I think it has to do with the fact that I didn&#39;t initialize i.
</p></div></div><p>
That is a rather nasty contradiction you have there...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Tue, 20 Mar 2007 03:34:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
for(int i;i&lt;Sprites.size();i++)
</p></div></div><p>

Shouldn&#39;t that be:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">for</span><span class="k2">(</span>Vector<span class="k3">&lt;</span>Sprite&gt;::iterator <span class="k3">=</span> Sprites.begin<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i <span class="k3">!</span><span class="k3">=</span> Sprites.end<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
</pre></div></div><p>

or something like that? (Not sure if that begin/end is correct because I haven&#39;t used C++ STL in a while, I&#39;m still in C#/.net generic mode).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Tue, 20 Mar 2007 07:00:38 +0000</pubDate>
	</item>
</rss>
