<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>getpixel() and putpixel()</title>
		<link>http://www.allegro.cc/forums/view/570532</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 03 Mar 2006 08:27:51 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m trying to make it so the player can customize the hero&#39;s colors. So, they choose the red, green, and blue values for the hero, then a function goes through and changes the colors. I would think my function works, but for some reason it doesn&#39;t. I&#39;ve tried adding an obscene rest() when before putpixel() is executed, to see if it actually is, and it skipped the obscene rest()&#39;s, so I assume it&#39;s a problem with checking for which color should be changed:</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="k1">void</span> changeColors<span class="k2">(</span><span class="k1">int</span> newR, <span class="k1">int</span> newG, <span class="k1">int</span> newB<span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>   <span class="c">// check if the color actually needs to change</span></td></tr><tr><td class="number">4</td><td>   <span class="k1">if</span> <span class="k2">(</span>newR <span class="k3">!</span><span class="k3">=</span> hero.r <span class="k3">|</span><span class="k3">|</span> newG <span class="k3">!</span><span class="k3">=</span> hero.g <span class="k3">|</span><span class="k3">|</span> newB <span class="k3">!</span><span class="k3">=</span> hero.b<span class="k2">)</span></td></tr><tr><td class="number">5</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">6</td><td>      <span class="c">// change the color values for the hero</span></td></tr><tr><td class="number">7</td><td>      hero.r <span class="k3">=</span> newR<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>      hero.g <span class="k3">=</span> newG<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>      hero.b <span class="k3">=</span> newB<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td>      <span class="c">// load the bmp that has each hero sprite on it because it's </span></td></tr><tr><td class="number">12</td><td>      <span class="c">// half the amount of pixels as each frame (i stretch_blit)</span></td></tr><tr><td class="number">13</td><td>      <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> heroLibrary <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><span class="s">"data\\hero.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td>      <span class="c">// make sure the colors aren't default orange(255,128,64)</span></td></tr><tr><td class="number">16</td><td>      <span class="k1">if</span> <span class="k2">(</span>hero.r <span class="k3">!</span><span class="k3">=</span> <span class="n">255</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> hero.g <span class="k3">!</span><span class="k3">=</span> <span class="n">128</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> hero.b <span class="k3">!</span><span class="k3">=</span> <span class="n">64</span><span class="k2">)</span></td></tr><tr><td class="number">17</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> heroLibrary-&gt;h<span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">18</td><td>            <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> k <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> k <span class="k3">&lt;</span> heroLibrary-&gt;w<span class="k2">;</span> k<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td>               <span class="c">// this is my problem line...</span></td></tr><tr><td class="number">21</td><td>               <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/getr" target="_blank"><span class="a">getr</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/getpixel" target="_blank"><span class="a">getpixel</span></a><span class="k2">(</span>heroLibrary, k, j<span class="k2">)</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">255</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> </td></tr><tr><td class="number">22</td><td>                   <a href="http://www.allegro.cc/manual/getg" target="_blank"><span class="a">getg</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/getpixel" target="_blank"><span class="a">getpixel</span></a><span class="k2">(</span>heroLibrary, k, j<span class="k2">)</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">128</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> </td></tr><tr><td class="number">23</td><td>                   <a href="http://www.allegro.cc/manual/getb" target="_blank"><span class="a">getb</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/getpixel" target="_blank"><span class="a">getpixel</span></a><span class="k2">(</span>heroLibrary, k, j<span class="k2">)</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">64</span><span class="k2">)</span></td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</td><td>                  <span class="c">// change the color?</span></td></tr><tr><td class="number">26</td><td>                  <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>heroLibrary, k, j, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span>hero.r, hero.g, hero.b<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>&#160;</td></tr><tr><td class="number">28</td><td>      <span class="c">// put the hero sprites into it's array</span></td></tr><tr><td class="number">29</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">16</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">30</td><td>         <span class="k1">if</span> <span class="k2">(</span>i <span class="k3">&lt;</span> <span class="n">8</span><span class="k2">)</span></td></tr><tr><td class="number">31</td><td>            <a href="http://www.allegro.cc/manual/stretch_blit" target="_blank"><span class="a">stretch_blit</span></a><span class="k2">(</span>heroLibrary, hero.frame<span class="k3">&lt;</span>i&gt;, i<span class="k3">*</span><span class="n">16</span>, <span class="n">0</span>, <span class="n">16</span>, <span class="n">16</span>, <span class="n">0</span>, <span class="n">0</span>, </td></tr><tr><td class="number">32</td><td>                         hero.frame<span class="k3">&lt;</span>i&gt;-&gt;w, hero.frame<span class="k3">&lt;</span>i&gt;-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>         <span class="k1">else</span></td></tr><tr><td class="number">34</td><td>            <a href="http://www.allegro.cc/manual/stretch_blit" target="_blank"><span class="a">stretch_blit</span></a><span class="k2">(</span>heroLibrary, hero.frame<span class="k3">&lt;</span>i&gt;, <span class="k2">(</span>i-8<span class="k2">)</span><span class="k3">*</span><span class="n">16</span>, <span class="n">16</span>, <span class="n">16</span>, <span class="n">16</span>, <span class="n">0</span>, <span class="n">0</span>,</td></tr><tr><td class="number">35</td><td>                         hero.frame<span class="k3">&lt;</span>i&gt;-&gt;w, hero.frame<span class="k3">&lt;</span>i&gt;-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>      <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>heroLibrary<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">38</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jeff Bernard)</author>
		<pubDate>Fri, 03 Mar 2006 07:03:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="source-code"><span class="k1">if</span> <span class="k2">(</span>newR <span class="k3">!</span><span class="k3">=</span> hero.r <span class="k3">&amp;</span><span class="k3">&amp;</span> newG <span class="k3">!</span><span class="k3">=</span> hero.g <span class="k3">&amp;</span><span class="k3">&amp;</span> newB <span class="k3">!</span><span class="k3">=</span> hero.b<span class="k2">)</span></span>Each of those should be OR. I.E. &quot;if red is not the old red OR green is not...&quot;.</p><p><span class="source-code"><span class="s">"data\\hero.bmp"</span></span>That should be <tt>&quot;data/hero.bmp&quot;</tt></p><p>Other than that it should work.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 03 Mar 2006 07:51:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ah, thanks, I didn&#39;t notice that with my first check. I&#39;ve changed the AND to OR now.</p><p>As for the double backslash, that&#39;s how I load all of my files. It&#39;s essentially the same thing as a single forward slash. I just prefer the double backslash because Windows uses backslashes in their address for folders.</p><p>I&#39;ve made the change on the first line...but it still doesn&#39;t seem to reach putpixel(). </p><p>EDIT-- I fixed the problem. Simple mistake in my code.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jeff Bernard)</author>
		<pubDate>Fri, 03 Mar 2006 08:27:51 +0000</pubDate>
	</item>
</rss>
