<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Dialog Not Working Correctly</title>
		<link>http://www.allegro.cc/forums/view/591356</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 12 May 2007 06:17:18 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Within the past week or two, I have been learning how to use Allegro Dialogs, and I thought I had the hang of them. That was until one of my DIALOG arrays stopped working correctly. I had declared the following DIALOG:</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">int</span> game_button_proc<span class="k2">(</span><span class="k1">int</span> msg, <a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> <span class="k3">*</span>d, <span class="k1">int</span> c<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="k1">int</span> ret <span class="k3">=</span> <a href="http://www.allegro.cc/manual/d_button_proc" target="_blank"><span class="a">d_button_proc</span></a><span class="k2">(</span>msg, d, c<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>   <span class="k1">if</span> <span class="k2">(</span>ret <span class="k3">=</span><span class="k3">=</span> D_CLOSE <span class="k3">&amp;</span><span class="k3">&amp;</span> d-&gt;dp3<span class="k2">)</span></td></tr><tr><td class="number">5</td><td>      <span class="k1">return</span> <span class="k2">(</span><span class="k2">(</span><span class="k1">int</span> <span class="k2">(</span><span class="k3">*</span><span class="k2">)</span><span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">)</span>d-&gt;dp3<span class="k2">)</span><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>   <span class="k1">return</span> ret<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>&#160;</td></tr><tr><td class="number">9</td><td><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> your_char_dialog<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</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="c">/* (dialog proc)     (x)   (y)   (w)   (h) (fg)(bg) (key) (flags)     (d1) (d2)    (dp)                   (dp2) (dp3) */</span></td></tr><tr><td class="number">12</td><td>   <span class="k2">{</span> game_button_proc,   <span class="n">15</span>, <span class="n">575</span>,  <span class="n">160</span>,   <span class="n">16</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>,   <span class="n">0</span>,   <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">"&amp;Save Character"</span>,NULL, <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>SaveChar  <span class="k2">}</span>,</td></tr><tr><td class="number">13</td><td>   <span class="k2">{</span> game_button_proc,  <span class="n">325</span>, <span class="n">575</span>,  <span class="n">160</span>,   <span class="n">16</span>,   <span class="n">0</span>,  <span class="n">0</span>,    <span class="n">0</span>, D_EXIT,       <span class="n">0</span>,   <span class="n">0</span>,    <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">"&amp;Go to Town"</span>,   NULL, <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>GoToTown  <span class="k2">}</span>,</td></tr><tr><td class="number">14</td><td>   <span class="k2">{</span> game_button_proc,  <span class="n">625</span>, <span class="n">575</span>,  <span class="n">160</span>,   <span class="n">16</span>,   <span class="n">0</span>,  <span class="n">0</span>,    <span class="n">0</span>, D_EXIT,       <span class="n">0</span>,   <span class="n">0</span>,    <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span><span class="s">"&amp;Exit"</span>,         NULL, <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>gameExit  <span class="k2">}</span>,</td></tr><tr><td class="number">15</td><td>   <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_yield_proc" target="_blank"><span class="a">d_yield_proc</span></a>,        <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>,    <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>,</td></tr><tr><td class="number">16</td><td>   <span class="k2">{</span> 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>,    <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></td></tr><tr><td class="number">17</td><td><span class="k2">}</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

And I am calling it with do_dialog:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/do_dialog" target="_blank"><span class="a">do_dialog</span></a><span class="k2">(</span>your_char_dialog, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

The 2nd and 3rd buttons both work, and do their job; however, the first one(which calls (void*)SaveChar) does not do anything. When I click the button it only gets selected, but does not call SaveChar(). This button used to work since the beginning of my game, but it just stopped working, and I am not sure why. I have tried moving the do_dialog() call to the beginning of my program, but that doesn&#39;t work. I have even tried putting another button in front of the faulty button, that doesn&#39;t work either. My code compiles fine the button just doesn&#39;t do anything.</p><p>Can anyone help me with this?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ron Rider)</author>
		<pubDate>Sat, 12 May 2007 03:02:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Did you do a total recompile?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Sat, 12 May 2007 04:53:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, I rebuilt the whole program before I ran it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ron Rider)</author>
		<pubDate>Sat, 12 May 2007 05:02:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ron - Check the flags field of your first game_button_proc.</p><p>D_EXIT is not set, so when you click on your first button , the D_CLOSE message is never sent to the dialog (which is what calls your function)</p><p>Hope this helps
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 12 May 2007 05:03:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Add a D_EXIT flag to the first button.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Sat, 12 May 2007 05:05:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That did it. Thanks a lot guys.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ron Rider)</author>
		<pubDate>Sat, 12 May 2007 06:17:18 +0000</pubDate>
	</item>
</rss>
