<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>GUI, GUI and more GUI...</title>
		<link>http://www.allegro.cc/forums/view/573653</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 30 Mar 2006 19:01:10 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So, nearing the end of my map editor project, I&#39;m met with a problem when i have to &quot;slap on top&quot; of the project the GUI. </p><p>There&#39;s the map on the left, in a bitmap (typical d_bitmap_proc) an there&#39;s the tiles on the right (at the moment, no another d_bitmap_proc), which the user presses and then he &quot;paints&quot; them on the map. In earlier versions, this worked out fine by clearing the screen, painting all the possible 256 tiles and then finding out he tile the user selected using the mouse_x / y  the moment he clicked. But now the allegro gui does resicing and its quite &quot;dirty &quot;to do it, cause it&#39;s not 32 x 32 tiles anymore. </p><p>So far I&#39;ve thought of the folowing solutions:</p><p>- Even if it&#39;s dirty, and evil, calculate which tile is the user pressing, even thought the rounding up of numbers may cause a pixel or 2 to be in the wrong tile.</p><p>- Make a dialog with 256 d_icon_proc&#39;s. Not my favorite cause of the ridiculous amount of work  for something so simple, and also cause several icons may be pressed at the same time and there fore it would need extra work to make sure its the tile we want.</p><p>- Make some kind of universal d_icon_proc, using a &quot;For&quot; somewere for the 256 cases. The problem here is that first I&#39;m not sure i could do something like that, and even if it could be done, i have no idea how to do it.</p><p>I&#39;d love to hear any suggestions and/or explanations on how to do it, cause I&#39;m sure there&#39;s been many map editors since the world came to life and most of them must have solved this one way or another.<br />Please bear with me, its my first C++ and allegro project and it&#39;s been less than 4 dais since i started with GUI&#39;s so don&#39;t assume i know what you&#39;re talking about, cause i might disappoint you <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>Cheers and thxs!!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jaime barrachina)</author>
		<pubDate>Sun, 19 Mar 2006 00:06:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Make a dialog with 256 d_icon_proc&#39;s. Not my favorite cause of the ridiculous amount of work for something so simple, and also cause several icons may be pressed at the same time and there fore it would need extra work to make sure its the tile we want.
</p></div></div><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k3">*</span> list_of_icons <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_551.html" target="_blank">malloc</a><span class="k2">(</span><span class="k1">sizeof</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k2">)</span> <span class="k3">*</span> <span class="n">257</span><span class="k2">)</span><span class="k2">;</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="k2">{</span>
    <span class="c">// Initialize what you need to here.</span>
<span class="k2">}</span>
list_of_icons<span class="k2">[</span><span class="n">256</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> NULL, NULL, NULL, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, NULL, NULL <span class="k2">}</span><span class="k2">;</span>
<span class="c">// Use the dialog now.</span>
<a href="http://www.delorie.com/djgpp/doc/libc/libc_350.html" target="_blank">free</a><span class="k2">(</span>list_of_icons<span class="k2">)</span><span class="k2">;</span>
<span class="c">// I don't actually remember the proper way to initialize a DIALOG.</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sun, 19 Mar 2006 07:48:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>In my a-maze game I have a maze editor made with allegro gui. I think I had 16 icon_procs that chose the tile I wanted to place out. But I had four or five pages of these procs. The pages could be selected with icon buttons that looked like those tabs at the top of the opera browser. I think the map was a modified bitmap_proc. When the mouse was placed over the bitmap, the mouse sprite was changed into the chosen tile. And clicking on the bitmap caused the proc to calculate which tile was clicked and then the tile was blitted to the bitmap at that coordinate. This would be almost equal to your first option.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Johan Halmén)</author>
		<pubDate>Sun, 19 Mar 2006 17:55:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Txs for the replies, I&#39;m going to try for now CGamesPlay&#39;s suggestion, I just didn&#39;t know if you could put &quot;for&#39;s&quot; and such in a Dialog. I&#39;ll post again if I manage anything, in the mean time I&#39;m open to any other suggestions you may have <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Cheers and txs again!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jaime barrachina)</author>
		<pubDate>Sun, 19 Mar 2006 20:15:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yep. Just make sure you malloc 1 more than the number of DIALOGs that you need, and set the last one to all NULLs or Os.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Mon, 20 Mar 2006 05:45:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hummm sorry for being so thick, but i cant get the thing to work, for this code:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k3">*</span> list_of_icons <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_551.html" target="_blank">malloc</a><span class="k2">(</span><span class="k1">sizeof</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k2">)</span> <span class="k3">*</span> <span class="n">257</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td><span class="k1">int</span> xl<span class="k3">=</span><span class="n">774</span>, yl<span class="k3">=</span><span class="n">15</span><span class="k2">;</span></td></tr><tr><td class="number">3</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">256</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></td></tr><tr><td class="number">5</td><td>     xl <span class="k3">+</span><span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> </td></tr><tr><td class="number">6</td><td>     <span class="k1">if</span> <span class="k2">(</span>xl <span class="k3">=</span><span class="k3">=</span> <span class="n">1024</span><span class="k2">)</span></td></tr><tr><td class="number">7</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>     xl<span class="k3">=</span><span class="n">774</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>     yl<span class="k3">=</span><span class="k3">+</span><span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">11</td><td><span class="k2">}</span></td></tr><tr><td class="number">12</td><td>list_of_icons<span class="k2">[</span><span class="n">256</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> xl, yl, <span class="n">32</span>, <span class="n">32</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, NULL, NULL, NULL <span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td><span class="c">//And somewere at the end of the program I call:</span></td></tr><tr><td class="number">16</td><td><a href="http://www.delorie.com/djgpp/doc/libc/libc_350.html" target="_blank">free</a><span class="k2">(</span>list_of_icons<span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

I get the folowing errors:</p><p>Compilador: Default compiler<br />Building Makefile: &quot;C:\Documents and Settings\JAIME\Desktop\editor99\Makefile.win&quot;<br />Ejecutando  make clean<br />rm -f Main3.o  Bproject.exe</p><p>g++.exe -c Main3.cpp -o Main3.o -I&quot;C:/Program Files/devcpp/include/c++&quot;  -I&quot;C:/Program Files/devcpp/include/c++/mingw32&quot;  -I&quot;C:/Program Files/devcpp/include/c++/backward&quot;  -I&quot;C:/Program Files/devcpp/include&quot;   -lalleg</p><p>In file included from Main3.cpp:1:<br />Encabezado.h:398: invalid conversion from `void*&#39; to `DIALOG*&#39;</p><p>Encabezado.h:400: parse error before `for&#39;<br />Encabezado.h:400: parse error before `;&#39; token<br />Encabezado.h:400: syntax error before `++&#39; token<br />Encabezado.h:406: ISO C++ forbids declaration of `yl&#39; with no type<br />Encabezado.h:406: redefinition of `int yl&#39;<br />Encabezado.h:399: `int yl&#39; previously defined here<br />Encabezado.h:407: parse error before `}&#39; token<br />Encabezado.h:409: ISO C++ forbids declaration of `list_of_icons&#39; with no type<br />Encabezado.h:409: conflicting types for `int list_of_icons[256]&#39;<br />Encabezado.h:398: previous declaration as `DIALOG*list_of_icons&#39;<br />Encabezado.h:409: warning: initialization to non-pointer type `int&#39; from NULL<br />Encabezado.h:409: warning: argument to non-pointer type `int&#39; from NULL<br />Encabezado.h:409: warning: initialization to non-pointer type `int&#39; from NULL<br />Encabezado.h:409: warning: argument to non-pointer type `int&#39; from NULL<br />Encabezado.h:409: warning: initialization to non-pointer type `int&#39; from NULL<br />Encabezado.h:409: warning: argument to non-pointer type `int&#39; from NULL</p><p>make.exe: *** [Main3.o] Error 1</p><p>Ejecución Terminada</p><p>I&#39;m just running around in the dark, bumping off walls, so if you can tell me what&#39;s wrong, or give a more specific example, I&#39;ll make you a statue...</p><p>Cheers and hope someone can help!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jaime barrachina)</author>
		<pubDate>Sun, 26 Mar 2006 00:39:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Most of those errors are self explanitory - redeclarations and such. As far as the line 398 error, add (DIALOG *) before the malloc().
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 26 Mar 2006 02:50:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Have you not used malloc before? Do you normally use c++? If so, you can use new instead.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Wetimer)</author>
		<pubDate>Sun, 26 Mar 2006 14:00:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, I&#39;ve started learning how to program 2 months ago and I chose C++ as my language, Allegro as my library and making a 2D game as my project. Having no experience whith programing at all (except html, but that doesn&#39;t count), It&#39;s not too easy. So yes, my answer is that I haven&#39;t used malloc before xD</p><div class="quote_container"><div class="title">Winston Ewert said:</div><div class="quote"><p>

... If so, you can use new instead.
</p></div></div><p>

New? Please tell me what you mean.</p><p>Right now I have the folowing code:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k3">*</span> list_of_icons <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> <span class="k3">*</span><span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_551.html" target="_blank">malloc</a><span class="k2">(</span><span class="k1">sizeof</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k2">)</span> <span class="k3">*</span> <span class="n">257</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">int</span> iconos<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></td></tr><tr><td class="number">5</td><td>  <span class="k1">int</span> xl <span class="k3">=</span> <span class="n">774</span>, yl <span class="k3">=</span> <span class="n">15</span>, u<span class="k2">;</span></td></tr><tr><td class="number">6</td><td>  <span class="k1">for</span><span class="k2">(</span>u <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> u <span class="k3">&lt;</span> <span class="n">256</span><span class="k2">;</span> u<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">7</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>       xl <span class="k3">+</span><span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> </td></tr><tr><td class="number">9</td><td>       <span class="k1">if</span> <span class="k2">(</span>xl <span class="k3">=</span><span class="k3">=</span> <span class="n">1024</span><span class="k2">)</span> <span class="k2">{</span> xl<span class="k3">=</span><span class="n">774</span><span class="k2">;</span>  yl<span class="k3">=</span><span class="k3">+</span><span class="n">32</span><span class="k2">;</span> <span class="k2">}</span> </td></tr><tr><td class="number">10</td><td>     </td></tr><tr><td class="number">11</td><td>       <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> Dibu <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k3">&lt;</span>u&gt;.dat<span class="k2">;</span>   <span class="c">//Not sure if this works it doesn't give errors anyhow</span></td></tr><tr><td class="number">12</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">13</td><td> list_of_icons<span class="k2">[</span><span class="n">256</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> xl, yl, <span class="n">32</span>, <span class="n">32</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, Dibu, NULL, NULL <span class="k2">}</span><span class="k2">;</span> <span class="c">//Error line</span></td></tr><tr><td class="number">14</td><td> <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

And I get a &quot;parse error before &quot;{&quot; token&quot; in the error line. Can anyone tell me why, and also, if the &quot;BITMAP* Dibu... &quot; line would work.</p><p>Cheers and txs!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jaime barrachina)</author>
		<pubDate>Sun, 26 Mar 2006 15:21:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
New? Please tell me what you mean.
</p></div></div><p>
Instead of <span class="source-code"><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k3">*</span> list_of_icons <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> <span class="k3">*</span><span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_551.html" target="_blank">malloc</a><span class="k2">(</span><span class="k1">sizeof</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k2">)</span> <span class="k3">*</span> <span class="n">257</span><span class="k2">)</span><span class="k2">;</span></span> you can do <span class="source-code"><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k3">*</span> list_of_icons <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k2">[</span><span class="n">257</span><span class="k2">]</span><span class="k2">;</span></span>
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
And I get a &quot;parse error before &quot;{&quot; token&quot; in the error line.
</p></div></div><p>
First of all, you should create the DIALOG array inside a function. Declare it globally if you want, but allocate memory inside a function. Like this: </p><div class="source-code snippet"><div class="inner"><pre><span class="c">//global DIALOG array</span>
<a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> <span class="k3">*</span>list_of_icons <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>

<span class="c">// some function</span>
<span class="k1">void</span> create_icons<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
   list_of_icons <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k2">[</span><span class="n">257</span><span class="k2">]</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>I didn&#39;t know your code even compiles.<br />Secondly, the error you get is because you can&#39;t initialize a dynamically created object like that. You must initialize each struct member by hand, like </p><div class="source-code snippet"><div class="inner"><pre>list_of_icons<span class="k2">[</span><span class="n">256</span><span class="k2">]</span>.x <span class="k3">=</span> x1<span class="k2">;</span>
list_of_icons<span class="k2">[</span><span class="n">256</span><span class="k2">]</span>.y <span class="k3">=</span> y1<span class="k2">;</span>
</pre></div></div><p> and so on.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Can anyone tell me why, and also, if the &quot;BITMAP* Dibu... &quot; line would work.
</p></div></div><p>
It&#39;s valid syntax but the code doesn&#39;t do anything.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Cheers and txs!!
</p></div></div><p>
Texas? <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Sun, 26 Mar 2006 15:32:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I&#39;m just running around in the dark, bumping off walls
</p></div></div><p>
Congratulations, you&#39;ve made your first Pong.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Johan Halmén)</author>
		<pubDate>Sun, 26 Mar 2006 19:06:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /> My first pong, i feel so proud xD<br />And by the way, what i meant with txs is thanks <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" /></p><p>Well, anyhow, I&#39;ve come up with the folowing piece of code (or rather almost copied it from this forum...):</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><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> <span class="k3">*</span>list_of_icons <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> <span class="c">//Somewere at the top of the code page</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="k1">void</span> iconos<span class="k2">(</span><span class="k1">void</span><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> list_of_icons <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k2">[</span><span class="n">257</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>  <span class="k1">int</span> xl <span class="k3">=</span> <span class="n">774</span>, yl <span class="k3">=</span> <span class="n">15</span>, u<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>  <span class="k1">for</span><span class="k2">(</span>u <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> u <span class="k3">&lt;</span> <span class="n">256</span><span class="k2">;</span> u<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">9</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">10</td><td>       xl <span class="k3">+</span><span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> </td></tr><tr><td class="number">11</td><td>       <span class="k1">if</span> <span class="k2">(</span>xl <span class="k3">=</span><span class="k3">=</span> <span class="n">1024</span><span class="k2">)</span> <span class="k2">{</span> xl<span class="k3">=</span><span class="n">774</span><span class="k2">;</span>  yl<span class="k3">=</span><span class="k3">+</span><span class="n">32</span><span class="k2">;</span> <span class="k2">}</span> </td></tr><tr><td class="number">12</td><td>     </td></tr><tr><td class="number">13</td><td>   list_of_icons<span class="k2">[</span><span class="n">256</span><span class="k2">]</span>.dp <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k3">&lt;</span>u&gt;.dat<span class="k2">;</span>    <span class="c">// O.O Does this work?</span></td></tr><tr><td class="number">14</td><td>   list_of_icons<span class="k2">[</span><span class="n">256</span><span class="k2">]</span>.x <span class="k3">=</span> xl<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>   list_of_icons<span class="k2">[</span><span class="n">256</span><span class="k2">]</span>.y <span class="k3">=</span> yl<span class="k2">;</span></td></tr><tr><td class="number">16</td><td>   </td></tr><tr><td class="number">17</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">18</td><td>   <a href="http://www.allegro.cc/manual/do_dialog" target="_blank"><span class="a">do_dialog</span></a><span class="k2">(</span>list_of_icons, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//Hum, the program doesnt like this line, while I</span></td></tr><tr><td class="number">19</td><td>                                 <span class="c">//don't call the dialog, everiting is fine, the moment</span></td></tr><tr><td class="number">20</td><td>                                 <span class="c">//I call it, it compiles but automaticaly crashes the program.</span></td></tr><tr><td class="number">21</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Almost there... but It doesn&#39;t let me call it! I promise to keep quiet a good while afther this, but please, please (*begs on his knees) someone tell me what&#39;s wrong, and, more importantly, how to fix it (or is that less important in fact...?).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jaime barrachina)</author>
		<pubDate>Mon, 27 Mar 2006 00:42:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;ve changed it. I&#39;m not sure if it helps if anyone writes this stuff for you. miran wrote a bad example, which you didn&#39;t understand. You should get a hang of the basics of Allegro&#39;s gui first. Anyway, this would be heading in the correct direction:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> <span class="k3">*</span>list_of_icons <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> <span class="c">//Somewere at the top of the code page</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">void</span> iconos<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></td></tr><tr><td class="number">5</td><td> list_of_icons <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k2">[</span><span class="n">257</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>  <span class="k1">int</span> xl <span class="k3">=</span> <span class="n">774</span>, yl <span class="k3">=</span> <span class="n">15</span>, u<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>  <span class="k1">for</span><span class="k2">(</span>u <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> u <span class="k3">&lt;</span> <span class="n">256</span><span class="k2">;</span> u<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">8</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">9</td><td>       xl <span class="k3">+</span><span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> </td></tr><tr><td class="number">10</td><td>       <span class="k1">if</span> <span class="k2">(</span>xl <span class="k3">=</span><span class="k3">=</span> <span class="n">1024</span><span class="k2">)</span> <span class="k2">{</span> xl<span class="k3">=</span><span class="n">774</span><span class="k2">;</span>  yl<span class="k3">=</span><span class="k3">+</span><span class="n">32</span><span class="k2">;</span> <span class="k2">}</span> </td></tr><tr><td class="number">11</td><td>       </td></tr><tr><td class="number">12</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.proc <span class="k3">=</span> <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><a href="http://www.allegro.cc/manual/d_bitmap_proc" target="_blank"><span class="a">d_bitmap_proc</span></a><span class="k2">;</span> <span class="c">// not sure about the void</span></td></tr><tr><td class="number">13</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.w <span class="k3">=</span><span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.h <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.dp <span class="k3">=</span> data<span class="k3">&lt;</span>u&gt;.dat<span class="k2">;</span>    <span class="c">// Both are void pointers!</span></td></tr><tr><td class="number">16</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.x <span class="k3">=</span> xl<span class="k2">;</span></td></tr><tr><td class="number">17</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.y <span class="k3">=</span> yl<span class="k2">;</span></td></tr><tr><td class="number">18</td><td>   </td></tr><tr><td class="number">19</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">20</td><td>   list_of_icons<span class="k2">[</span><span class="n">256</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> NULL, NULL, NULL, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, NULL, NULL <span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>   <a href="http://www.allegro.cc/manual/do_dialog" target="_blank"><span class="a">do_dialog</span></a><span class="k2">(</span>list_of_icons, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">22</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Johan Halmén)</author>
		<pubDate>Mon, 27 Mar 2006 02:22:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>OK I must put my tip here :</p><p>Any allegro dialog should end by a NULL line who mean... end of dialog.</p><p>But correct me if i&#39;m wrong.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Mon, 27 Mar 2006 17:31:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>More specifically, the proc member of the struct must be NULL.<br />Anyway, I think this is pretty advanced stuff - a map editor isn&#39;t the easiest thing to code, and allegro GUI has never been known to be easy. Especially when it comes to dynamically allocated arrays.<br />So; may I suggest something easier? You can still code a tile-mapped game alright, but maybe you can use an existing tool for creating the maps (Mappy comes to mind, but you can also use normal bitmaps, or even text files if all else fails).<br />Anyway, good luck.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Mon, 27 Mar 2006 20:20:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, this is about it, thanks everyone for their awesome help, I really don&#39;t know if I could make anything work without the splendid people from Allegro c.c. In the end the code looks like this:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">void</span> iconos<span class="k2">(</span><span class="k1">void</span><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> list_of_icons <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k2">[</span><span class="n">258</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>  <a href="http://www.allegro.cc/manual/set_dialog_color" target="_blank"><span class="a">set_dialog_color</span></a> <span class="k2">(</span>list_of_icons, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">242</span>, <span class="n">242</span>, <span class="n">242</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>  <span class="k1">int</span> xl <span class="k3">=</span> <span class="n">774</span>, yl <span class="k3">=</span> <span class="n">15</span>, u<span class="k3">=</span><span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>  </td></tr><tr><td class="number">7</td><td>  list_of_icons<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.proc <span class="k3">=</span> <a href="http://www.allegro.cc/manual/d_clear_proc" target="_blank"><span class="a">d_clear_proc</span></a><span class="k2">;</span> </td></tr><tr><td class="number">8</td><td>  list_of_icons<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.fg <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>  list_of_icons<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.bg <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>  list_of_icons<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.dp <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>  </td></tr><tr><td class="number">12</td><td>  </td></tr><tr><td class="number">13</td><td>  <span class="k1">for</span><span class="k2">(</span>u <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> u <span class="k3">&lt;</span> <span class="n">257</span><span class="k2">;</span> u<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">14</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">15</td><td>       xl <span class="k3">+</span><span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> </td></tr><tr><td class="number">16</td><td>       <span class="k1">if</span> <span class="k2">(</span>xl <span class="k3">=</span><span class="k3">=</span> <span class="n">1024</span><span class="k2">)</span> <span class="k2">{</span> xl<span class="k3">=</span><span class="n">774</span><span class="k2">;</span>  yl<span class="k3">=</span><span class="k3">+</span><span class="n">32</span><span class="k2">;</span> <span class="k2">}</span> </td></tr><tr><td class="number">17</td><td>       </td></tr><tr><td class="number">18</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.proc <span class="k3">=</span> <a href="http://www.allegro.cc/manual/d_icon_proc" target="_blank"><span class="a">d_icon_proc</span></a><span class="k2">;</span> <span class="c">// not sure about the void</span></td></tr><tr><td class="number">19</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.x <span class="k3">=</span> xl<span class="k2">;</span></td></tr><tr><td class="number">20</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.y <span class="k3">=</span> yl<span class="k2">;</span></td></tr><tr><td class="number">21</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.w <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.h <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.fg <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.bg <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> </td></tr><tr><td class="number">25</td><td>       list_of_icons<span class="k3">&lt;</span>u&gt;.dp <span class="k3">=</span> data<span class="k3">&lt;</span>u&gt;.dat<span class="k2">;</span>    <span class="c">// Both are void pointers!       </span></td></tr><tr><td class="number">26</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">27</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.proc <span class="k3">=</span>  NULL<span class="k2">;</span></td></tr><tr><td class="number">28</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.x <span class="k3">=</span>  <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.y <span class="k3">=</span>  <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.w <span class="k3">=</span>  <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.h <span class="k3">=</span>  <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.fg <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.bg <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.<a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a> <span class="k3">=</span>  <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.flags <span class="k3">=</span>  <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.d1 <span class="k3">=</span>  <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.d2 <span class="k3">=</span>  <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.dp <span class="k3">=</span>  NULL<span class="k2">;</span></td></tr><tr><td class="number">39</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.dp2 <span class="k3">=</span>  NULL<span class="k2">;</span></td></tr><tr><td class="number">40</td><td>   list_of_icons<span class="k2">[</span><span class="n">257</span><span class="k2">]</span>.dp3 <span class="k3">=</span>  NULL<span class="k2">;</span></td></tr><tr><td class="number">41</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

And though I&#39;m having problems with my do_dialog(list_of_icons,-1) (It just doesn&#39;t show the dialog O.O ) I think the icons function should work fine now. </p><p>Thank you again everyone!! The map editor is almost done  <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p><p>[EDIT] Yust to say everything works OK now. Thanks again everyone!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jaime barrachina)</author>
		<pubDate>Thu, 30 Mar 2006 19:01:10 +0000</pubDate>
	</item>
</rss>
