<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Mugen - Trying to load Sff with c++, strange error</title>
		<link>http://www.allegro.cc/forums/view/603877</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 24 Apr 2010 03:04:15 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello guys, Im trying to open/load a sff file from Mugen, a beat em up maker, but im getting a colour error. <br />Here is the definition of the sff file type:</p><p>/*--| SFF file structure<br />|--------------------------------------------------*\<br />  Version 1.01<br />HEADER (512 bytes)<br />------<br />Bytes<br />00-11  &quot;ElecbyteSpr\0&quot; signature				[12]<br />12-15  1 verhi, 1 verlo, 1 verlo2, 1 verlo3			[04]<br />16-19  Number of groups						[04]<br />20-24  Number of images						[04]<br />24-27  File offset where first subfile is located		[04]<br />28-31  Size of subheader in bytes				[04]<br />32     Palette type (1=SPRPALTYPE_SHARED or 0=SPRPALTYPE_INDIV)	[01]<br />33-35  Blank; set to zero					[03]<br />36-511 Blank; can be used for comments				[476]</p><p>SUBFILEHEADER (32 bytes)<br />-------<br />Bytes<br />00-03 File offset where next subfile in the &quot;linked list&quot; is	[04]<br />      located.  Null if last subfile</p><p>04-07 Subfile length (not including header)			[04]<br />      Length is 0 if it is a linked sprite<br />08-09 Image axis X coordinate					[02]<br />10-11 Image axis Y coordinate					[02]<br />12-13 Group number						[02]<br />14-15 Image number (in the group)				[02]<br />16-17 Index of previous copy of sprite (linked sprites only)	[02]<br />      This is the actual<br />18    True if palette is same as previous image			[01]<br />19-31 Blank; can be used for comments				[14]<br />32-   PCX graphic data. If palette data is available, it is the last<br />      768 bytes.</p><p>On the basis of this specification AND example code from this site(thx for this)<br />I came up with this</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 SFF_LOADER</span>
<span class="number">   2</span> <span class="p">#define SFF_LOADER</span>
<span class="number">   3</span> 
<span class="number">   4</span> <span class="p">#include &lt;allegro.h&gt;</span>
<span class="number">   5</span> <span class="p">#include &lt;iostream&gt;</span>
<span class="number">   6</span> <span class="p">#include &lt;fstream&gt;</span>
<span class="number">   7</span> <span class="p">#include &lt;string&gt;</span>
<span class="number">   8</span> <span class="p">#include &lt;sstream&gt;</span>
<span class="number">   9</span> <span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  10</span> 
<span class="number">  11</span> 
<span class="number">  12</span> <a href="http://www.allegro.cc/manual/RGB" target="_blank"><span class="a">RGB</span></a> colours<span class="k2">[</span><span class="n">256</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  13</span> <span class="k1">typedef</span> <span class="k1">struct</span> <span class="k2">{</span>
<span class="number">  14</span>     <span class="k1">char</span> magic<span class="k2">[</span><span class="n">12</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  15</span>     <span class="k1">char</span> version<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  16</span>     <span class="k1">int</span>  countGroups<span class="k2">;</span>
<span class="number">  17</span>     <span class="k1">int</span>  countImages<span class="k2">;</span>
<span class="number">  18</span>     <span class="k1">int</span>  offsetFirstSubFile<span class="k2">;</span>
<span class="number">  19</span>     <span class="k1">int</span>  sizeOfSubfileHeader<span class="k2">;</span>
<span class="number">  20</span>     <span class="k1">char</span> palType<span class="k2">;</span>
<span class="number">  21</span>     <span class="k1">char</span> padding<span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  22</span>     <span class="k1">char</span> comment<span class="k2">[</span><span class="n">476</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  23</span> <span class="k2">}</span> SFFHeader<span class="k2">;</span>
<span class="number">  24</span> 
<span class="number">  25</span> <span class="k1">typedef</span> <span class="k1">struct</span> <span class="k2">{</span>
<span class="number">  26</span>     <span class="k1">int</span>   nextSubFile<span class="k2">;</span>
<span class="number">  27</span>     <span class="k1">int</span>   sizeOfData<span class="k2">;</span>
<span class="number">  28</span>     <span class="k1">short</span> x<span class="k2">;</span>
<span class="number">  29</span>     <span class="k1">short</span> y<span class="k2">;</span>
<span class="number">  30</span>     <span class="k1">short</span> group<span class="k2">;</span>
<span class="number">  31</span>     <span class="k1">short</span> curIndex<span class="k2">;</span>
<span class="number">  32</span>     <span class="k1">short</span> prevIndex<span class="k2">;</span>
<span class="number">  33</span>     <span class="k1">char</span>  reusePalette<span class="k2">;</span>
<span class="number">  34</span>     <span class="k1">char</span>  comment<span class="k2">[</span><span class="n">13</span><span class="k2">]</span><span class="k2">;</span>   
<span class="number">  35</span>     <span class="c">//char  pcxData[1];</span>
<span class="number">  36</span>     
<span class="number">  37</span> <span class="k2">}</span> SFFSubFileHeader<span class="k2">;</span>
<span class="number">  38</span> 
<span class="number">  39</span> <span class="k1">typedef</span> <span class="k1">struct</span>
<span class="number">  40</span> <span class="k2">{</span>
<span class="number">  41</span>        <span class="k1">char</span> identity<span class="k2">;</span>
<span class="number">  42</span>        <span class="k1">char</span> pcxver<span class="k2">;</span>
<span class="number">  43</span>        <span class="k1">char</span> compression<span class="k2">;</span>
<span class="number">  44</span>        <span class="k1">char</span> bpp<span class="k2">;</span>
<span class="number">  45</span>        <span class="k1">short</span> pos<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  46</span>        <span class="k1">short</span> hor_dpi<span class="k2">;</span>
<span class="number">  47</span>        <span class="k1">short</span> ver_dpi<span class="k2">;</span>
<span class="number">  48</span>        <span class="k1">char</span> colormap<span class="k2">[</span><span class="n">16</span><span class="k2">]</span><span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  49</span>        <span class="k1">char</span> reserved<span class="k2">;</span>
<span class="number">  50</span>        <span class="k1">char</span> colourplanes<span class="k2">;</span>
<span class="number">  51</span>        <span class="k1">short</span> byteperline<span class="k2">;</span>
<span class="number">  52</span>        <span class="k1">short</span> palinfo<span class="k2">;</span>
<span class="number">  53</span>        <span class="k1">short</span> width<span class="k2">;</span>
<span class="number">  54</span>        <span class="k1">short</span> height<span class="k2">;</span>
<span class="number">  55</span>        <span class="k1">char</span> fill<span class="k2">[</span><span class="n">54</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  56</span><span class="k2">}</span>PCXhead<span class="k2">;</span>
<span class="number">  57</span> 
<span class="number">  58</span> 
<span class="number">  59</span> <a href="http://www.allegro.cc/manual/RGB" target="_blank"><span class="a">RGB</span></a>    pal<span class="k2">[</span><span class="n">256</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  60</span> 
<span class="number">  61</span> 
<span class="number">  62</span> <span class="k1">typedef</span> <span class="k1">struct</span> SFFEntryStruct <span class="k2">{</span>
<span class="number">  63</span>     <span class="k1">short</span>   x, y, group, curIndex, prevIndex<span class="k2">;</span>
<span class="number">  64</span>     <span class="k1">char</span>    isLinkedImage<span class="k2">;</span>
<span class="number">  65</span>     <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="number">  66</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="number">  67</span>     <span class="k1">char</span>    comment<span class="k2">[</span><span class="n">13</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  68</span>     
<span class="number">  69</span>     <span class="k1">struct</span> SFFEntryStruct <span class="k3">*</span>next<span class="k2">;</span>
<span class="number">  70</span> <span class="k2">}</span> SFFEntry<span class="k2">;</span>
<span class="number">  71</span> 
<span class="number">  72</span> <span class="p">#define SFF_LOAD_RET_TYPE SFFEntry*</span>
<span class="number">  73</span> 
<span class="number">  74</span> SFF_LOAD_RET_TYPE sffLoad<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> filename<span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span> SFF_LOAD_RET_TYPE sffLoadFromMemory<span class="k2">(</span><span class="k1">void</span> <span class="k3">*</span>memory<span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span> <span class="p">#endif</span>
<span class="number">  77</span>
<span class="number">  78</span>
<span class="number">  79</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  80</span>
<span class="number">  81</span><span class="k1">int</span> size<span class="k2">;</span>
<span class="number">  82</span>    <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>
<span class="number">  83</span>    <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>
<span class="number">  84</span>    <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">16</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</span>    <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>
<span class="number">  86</span>
<span class="number">  87</span>
<span class="number">  88</span>SFFHeader head<span class="k2">;</span>
<span class="number">  89</span>SFFSubFileHeader subhead<span class="k2">;</span>
<span class="number">  90</span>PCXhead pcx<span class="k2">;</span>
<span class="number">  91</span>
<span class="number">  92</span><span class="k1">char</span> data<span class="k2">[</span><span class="n">625</span><span class="k2">]</span><span class="k2">;</span><span class="c">//size is just for this example I KNOW the first image has 25*25byte</span>
<span class="number">  93</span>string <a href="http://www.delorie.com/djgpp/doc/libc/libc_866.html" target="_blank">write</a><span class="k2">;</span>
<span class="number">  94</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap_ex" target="_blank"><span class="a">create_bitmap_ex</span></a><span class="k2">(</span><span class="n">8</span>, <span class="n">25</span>, <span class="n">25</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>
<span class="number">  96</span>    stringstream blabla<span class="k2">;</span>
<span class="number">  97</span>    
<span class="number">  98</span>    fstream myfile<span class="k2">(</span><span class="s">"kfm.sff"</span>,ios::in <span class="k3">|</span> ios::binary<span class="k2">)</span><span class="k2">;</span> <span class="c">//Opening the file</span>
<span class="number">  99</span>    myfile.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>head,<span class="k1">sizeof</span><span class="k2">(</span>SFFHeader<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span><span class="c">//reading the Sffheader(works)</span>
<span class="number"> 100</span>   
<span class="number"> 101</span>    myfile.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>subhead,<span class="k1">sizeof</span><span class="k2">(</span>SFFSubFileHeader<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//works  </span>
<span class="number"> 102</span>    myfile.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>pcx,<span class="k1">sizeof</span><span class="k2">(</span>PCXhead<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span><span class="c">//works as well</span>
<span class="number"> 103</span>   
<span class="number"> 104</span>    <span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 105</span>    
<span class="number"> 106</span> 
<span class="number"> 107</span>    <span class="k1">unsigned</span> <span class="k1">char</span> c<span class="k2">;</span>
<span class="number"> 108</span>    <span class="k1">while</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&lt;</span> <span class="n">625</span><span class="k2">)</span><span class="c">//here might be an error, the PCX file is RLE encoded, sp</span>
<span class="number"> 109</span>    <span class="k2">{</span>                 <span class="c">//Im decoding here </span>
<span class="number"> 110</span>        c <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>myfile.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>        <span class="k1">if</span><span class="k2">(</span>c <span class="k3">&gt;</span> <span class="n">192</span><span class="k2">)</span>   <span class="c">//if c &gt; 192, the first to bits are set so this is a length</span>
<span class="number"> 112</span>        <span class="k2">{</span>             <span class="c">// byte</span>
<span class="number"> 113</span>            
<span class="number"> 114</span>            c <span class="k3">=</span> c <span class="k3">-</span><span class="k2">(</span><span class="n">128</span><span class="k3">+</span><span class="n">64</span><span class="k2">)</span><span class="k2">;</span><span class="c">//decreasing by 192, to get the times i have to use the</span>
<span class="number"> 115</span>                            <span class="c">// byte AFTER the length byte</span>
<span class="number"> 116</span>          
<span class="number"> 117</span>            <span class="k1">char</span> colour <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>myfile.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>            <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> c<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 119</span>            <span class="k2">{</span>
<span class="number"> 120</span>                data<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span> <span class="k3">=</span> colour<span class="k2">;</span>
<span class="number"> 121</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 122</span>            <span class="k2">}</span>
<span class="number"> 123</span>            
<span class="number"> 124</span>        <span class="k2">}</span>
<span class="number"> 125</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>c <span class="k3">=</span><span class="k3">=</span> <span class="n">192</span><span class="k2">)</span><span class="c">//meaning the next byte has a colourindex &gt; 191</span>
<span class="number"> 126</span>        <span class="k2">{</span>
<span class="number"> 127</span>            data<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>myfile.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 129</span>           
<span class="number"> 130</span>           
<span class="number"> 131</span>        <span class="k2">}</span>
<span class="number"> 132</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>c <span class="k3">&lt;</span> <span class="n">192</span><span class="k2">)</span>
<span class="number"> 133</span>        <span class="k2">{</span>
<span class="number"> 134</span>            
<span class="number"> 135</span>            data<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span> <span class="k3">=</span> c<span class="k2">;</span>
<span class="number"> 136</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 137</span>        <span class="k2">}</span>
<span class="number"> 138</span>        
<span class="number"> 139</span>    <span class="k2">}</span>
<span class="number"> 140</span>     
<span class="number"> 141</span>    c <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>myfile.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 142</span>    <span class="k1">if</span><span class="k2">(</span>c <span class="k3">=</span><span class="k3">=</span> <span class="n">12</span><span class="k2">)</span><span class="c">//if c = 12, a palette is used</span>
<span class="number"> 143</span>    <span class="k2">{</span>
<span class="number"> 144</span>       
<span class="number"> 145</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span><span class="n">256</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 146</span>    <span class="k2">{</span>
<span class="number"> 147</span>        <span class="c">//here im loading the palette</span>
<span class="number"> 148</span>        pal<span class="k2">[</span>i<span class="k2">]</span>.r <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>myfile.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 149</span>        pal<span class="k2">[</span>i<span class="k2">]</span>.g <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>myfile.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 150</span>        pal<span class="k2">[</span>i<span class="k2">]</span>.b <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>myfile.get<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 151</span>    <span class="k2">}</span>
<span class="number"> 152</span><span class="k2">}</span>
<span class="number"> 153</span> <span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 154</span><span class="c">//here I'm filling the BMP with the right pixel colours</span>
<span class="number"> 155</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">25</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 156</span>    <span class="k2">{</span>
<span class="number"> 157</span>        <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> <span class="n">25</span><span class="k2">;</span> k<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 158</span>        <span class="k2">{</span>
<span class="number"> 159</span>            bmp <span class="k3">-</span><span class="k3">&gt;</span> <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a><span class="k2">[</span>i<span class="k2">]</span><span class="k2">[</span>k<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span>pal<span class="k2">[</span>data<span class="k2">[</span>j<span class="k2">]</span><span class="k2">]</span>.r,pal<span class="k2">[</span>data<span class="k2">[</span>j<span class="k2">]</span><span class="k2">]</span>.g,pal<span class="k2">[</span>data<span class="k2">[</span>j<span class="k2">]</span><span class="k2">]</span>.b<span class="k2">)</span><span class="k2">;</span><span class="c">//makecol(pal[data[j]].r,pal[data[j]].g,pal[data[j]].b);</span>
<span class="number"> 160</span>            j<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 161</span>        <span class="k2">}</span>
<span class="number"> 162</span>    <span class="k2">}</span>
<span class="number"> 163</span>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, bmp, <span class="n">50</span>, <span class="n">50</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 164</span>   
<span class="number"> 165</span>     
<span class="number"> 166</span>    
<span class="number"> 167</span>    
<span class="number"> 168</span>
<span class="number"> 169</span>    myfile.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 170</span>
<span class="number"> 171</span>
<span class="number"> 172</span>     
<span class="number"> 173</span>    
<span class="number"> 174</span>    
<span class="number"> 175</span>    
<span class="number"> 176</span> 
<span class="number"> 177</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_ESC<span class="k2">]</span><span class="k3">=</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span>
<span class="number"> 178</span>    <span class="k2">{</span>
<span class="number"> 179</span>    <span class="k2">}</span>
<span class="number"> 180</span>
<span class="number"> 181</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 182</span><span class="k2">}</span>
<span class="number"> 183</span><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 184</span><span class="k2">;</span>
</div></div><p>

Sadly, im loading something wrong:/<br />Here a comparison:<br />How i should be(taken from another program)<br /><a href="http://up.picr.de/4209914.jpg">http://up.picr.de/4209914.jpg</a><br />my version:<br /><a href="http://up.picr.de/4209907.jpg">http://up.picr.de/4209907.jpg</a></p><p>As you can see, the face is somewhat there, but somehow it only loads black and white. As far as I can tell, the position within the PCX file is correct, because the other headers have correct values(e.g. correct width or colordepth).<br />I might load the palette wrong, though the check for &quot;c = 12&quot; should guarantee a palette is there.</p><p>Does anyone have a clue? <br />Thank you very much <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kingcools)</author>
		<pubDate>Sat, 24 Apr 2010 00:30:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Couldn&#39;t open your images. The palette in the SFF file may be incorrect. Try loading one of the ACT palettes, instead.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kenmasters1976)</author>
		<pubDate>Sat, 24 Apr 2010 00:37:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>try it now.<br />I just tried that, but with no effect(ok the background color changed from white to pink)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kingcools)</author>
		<pubDate>Sat, 24 Apr 2010 00:51:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh yeah, there&#39;s something about Allegro 4&#39;s palettes; only the last 6 bits of the color components are significative, so you&#39;ll probably want to divide the MUGEN palette values by 4.</p><p>[EDIT:] Also, in case you&#39;re interested, there&#39;s a SFF loader by spellcaster that is near perfect. You can find it by doing a search in the forum.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kenmasters1976)</author>
		<pubDate>Sat, 24 Apr 2010 02:10:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you, I just tried this, but it only changes the background color from white to like something redish.</p><p>The thing that irritates me is, that my data array, which contains all the bytes of the image, seems to contain only like 2 different values(because if i use bmp -&gt; line[i][k] = data[j]; i get the rough image(see above), which contains only black and white).</p><p>I attached my 2 files, hoping it will help someone to help me^^<br />Ignore the german writing within it and the txt file it creates its just for debugging(it writes down all the colour values).</p><p>edit:</p><p>Thanks, He was the one I took the basic structures from. Already looked at it, but understanding someone else&#39;s code is tough IMO. Thus I will try solving my own problems and if I can&#39;t work it out, I&#39;ll try his version <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /><br />Kind of you to point this out <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kingcools)</author>
		<pubDate>Sat, 24 Apr 2010 02:20:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This line seems a bit strange:</p><p><span class="source-code">bmp <span class="k3">-</span><span class="k3">&gt;</span> <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a><span class="k2">[</span>i<span class="k2">]</span><span class="k2">[</span>k<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span>pal<span class="k2">[</span>data<span class="k2">[</span>j<span class="k2">]</span><span class="k2">]</span>.r,pal<span class="k2">[</span>data<span class="k2">[</span>j<span class="k2">]</span><span class="k2">]</span>.g,pal<span class="k2">[</span>data<span class="k2">[</span>j<span class="k2">]</span><span class="k2">]</span>.b<span class="k2">)</span><span class="k2">;</span></span></p><p>Since you&#39;re creating an 8 bit bitmap, you should just fill it with the corresponding color index, so I see no need for the <span class="source-code"><a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="k2">)</span></span> call.</p><p>[EDIT:] Also, you&#39;re not calling <span class="source-code"><a href="http://www.allegro.cc/manual/set_palette" target="_blank"><span class="a">set_palette</span></a><span class="k2">(</span><span class="k2">)</span></span>. That might be the problem.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kenmasters1976)</author>
		<pubDate>Sat, 24 Apr 2010 02:32:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I thought the value within the pixelbytes in the PCX refer to a palette entry, thus if i got a colourbyte with the value 0, it isnt like colour 0 but the colour of palette[0]?!</p><p>Edit:</p><p>WOOOOOOOOHOOOOOOO GUYS ITS DONE HAHAHA IT WORKS.<br />I used set_palette() AND I used the hint to divide the paletteentries by four.<br />Looks perfect now.<br />Thank you soooo much <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>edit2:</p><p>one more question about set_palette:what if i have more than one Bitmap and want them to have different palettes?!<br />I mean the function set_palette doesnt refer to a special bitmap?!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kingcools)</author>
		<pubDate>Sat, 24 Apr 2010 02:55:46 +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/603877/862331#target">kingcools</a> said:</div><div class="quote"><p> ... thus if i got a colourbyte with the value 0, it isnt like colour 0 but the colour of palette[0]?!
</p></div></div><p>Yes, that&#39;s the way 8 bit bitmaps work.</p><p>The missing <span class="source-code"><a href="http://www.allegro.cc/manual/set_palette" target="_blank"><span class="a">set_palette</span></a><span class="k2">(</span><span class="k2">)</span></span> call seems to be the problem. This is what I get after doing a few small changes to your code:</p><p><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/c/9/c990dc6a413224d0f68fbed49296ca7f.png" alt="601137" width="152" height="110" /></p><p>The changes are basically changing the <span class="source-code"><a href="http://www.allegro.cc/manual/RGB" target="_blank"><span class="a">RGB</span></a></span> array for a <span class="source-code"><a href="http://www.allegro.cc/manual/PALETTE" target="_blank"><span class="a">PALETTE</span></a></span> and calling <span class="source-code"><a href="http://www.allegro.cc/manual/set_palette" target="_blank"><span class="a">set_palette</span></a><span class="k2">(</span><span class="k2">)</span></span> before drawing. Also, changing the line I mentioned earlier with:</p><p><span class="source-code">bmp <span class="k3">-</span><span class="k3">&gt;</span> <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a><span class="k2">[</span>i<span class="k2">]</span><span class="k2">[</span>k<span class="k2">]</span> <span class="k3">=</span> data<span class="k2">[</span>j<span class="k2">]</span><span class="k2">;</span></span></p><p>[EDIT:] I was replying as you edited your post.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p> one more question about set_palette:what if i have more than one Bitmap and want them to have different palettes?! I mean the function set_palette doesnt refer to a special bitmap?!
</p></div></div><p>OK, here&#39;s where things can get a bit tricky. As long as you use a color depth of 15 or more bits for your application, you can change the palette and draw a new bitmap with the new palette and they will both be drawn with their corresponding palette each. If you were using an 8 bit color depth, then things would be different.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kenmasters1976)</author>
		<pubDate>Sat, 24 Apr 2010 03:04:15 +0000</pubDate>
	</item>
</rss>
