<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Allegro strings</title>
		<link>http://www.allegro.cc/forums/view/607864</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 18 Jul 2011 14:07:17 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m having a small issue. When I send my UTF-8 string to a function it puts stuff in it no problem but as soon as the function closes and goes back the string is empty. It&#39;s being passed by pointer so nothing is being returned.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lance5057)</author>
		<pubDate>Mon, 18 Jul 2011 10:30:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It sounds more like you are passing an regular object on the stack, but you said you&#39;re using a pointer. Show the code for the function that isn&#39;t working.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 18 Jul 2011 10:35:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><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="c">//Calling</span>
<span class="number">  2</span>ShowToolTip<span class="k2">(</span>Inventory<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,tip<span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="c">//Function</span>
<span class="number">  5</span><span class="p">#include "BL.h"</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="k1">void</span> ShowToolTip<span class="k2">(</span>Item item,<a href="http://www.allegro.cc/manual/ALLEGRO_USTR"><span class="a">ALLEGRO_USTR</span></a><span class="k3">*</span> tip<span class="k2">)</span>
<span class="number">  8</span><span class="k2">{</span>
<span class="number">  9</span>  tip<span class="k3">=</span><a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span><span class="s">""</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>  <span class="k1">if</span><span class="k2">(</span>item.type<span class="k3">=</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span>
<span class="number"> 11</span>  <span class="k2">{</span>
<span class="number"> 12</span>    
<span class="number"> 13</span>    <span class="k1">switch</span><span class="k2">(</span>item.prefix<span class="k2">)</span>
<span class="number"> 14</span>    <span class="k2">{</span>
<span class="number"> 15</span>    <span class="k1">case</span> NOPREFIX: <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 16</span>    <span class="k1">case</span> ABLE: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Able "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>
<span class="number"> 18</span>    <span class="k1">case</span> VINED: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Vined "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>    <span class="k2">}</span>
<span class="number"> 20</span>
<span class="number"> 21</span>    <span class="k1">switch</span><span class="k2">(</span>item.multiplier<span class="k2">)</span>
<span class="number"> 22</span>    <span class="k2">{</span>
<span class="number"> 23</span>    <span class="k1">case</span> CARDBOARD: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"CardBoard "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>    <span class="k2">}</span>
<span class="number"> 25</span>
<span class="number"> 26</span>    <span class="k1">switch</span><span class="k2">(</span>item.ID<span class="k2">)</span>
<span class="number"> 27</span>    <span class="k2">{</span>
<span class="number"> 28</span>    <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span> <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Sword "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>    <span class="k2">}</span>
<span class="number"> 30</span>
<span class="number"> 31</span>    <span class="k1">if</span><span class="k2">(</span>item.suffix&gt;NOSUFFIX<span class="k2">)</span>
<span class="number"> 32</span>    <span class="k2">{</span>
<span class="number"> 33</span>      <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"of the "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>    <span class="k2">}</span>
<span class="number"> 35</span>
<span class="number"> 36</span>    <span class="k1">switch</span><span class="k2">(</span>item.suffix<span class="k2">)</span>
<span class="number"> 37</span>    <span class="k2">{</span>
<span class="number"> 38</span>    <span class="k1">case</span> NOSUFFIX: <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 39</span>
<span class="number"> 40</span>    <span class="k1">case</span> RAT: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Rat"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>    <span class="k1">case</span> FOX: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Fox"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span>    <span class="k1">case</span> WOLF: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Wolf"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>    <span class="k1">case</span> BULL: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Bull"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 44</span>    <span class="k1">case</span> BEAR: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Bear"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 45</span>
<span class="number"> 46</span>    <span class="k2">}</span>
<span class="number"> 47</span>  <span class="k2">}</span>
<span class="number"> 48</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lance5057)</author>
		<pubDate>Mon, 18 Jul 2011 12:57:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I commonly do this mistake. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> In this case, the variable &quot;tip&quot; is only local to this function. Meaning that this line:
</p><div class="source-code snippet"><div class="inner"><pre>tip<span class="k3">=</span><a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span><span class="s">""</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

does not change the value of &quot;tip&quot; which you&#39;ve passed when you called this function:
</p><div class="source-code snippet"><div class="inner"><pre>ShowToolTip<span class="k2">(</span>Inventory<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,tip<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

You should change the function to something like 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"><div class="highlight"><span class="number">  1</span><span class="k1">void</span> ShowToolTip<span class="k2">(</span>Item item,<a href="http://www.allegro.cc/manual/ALLEGRO_USTR"><span class="a">ALLEGRO_USTR</span></a><span class="k3">*</span><span class="k3">*</span> result<span class="k2">)</span></div><span class="number">  2</span><span class="k2">{</span>
<div class="highlight"><span class="number">  3</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_USTR"><span class="a">ALLEGRO_USTR</span></a><span class="k3">*</span> tip<span class="k3">=</span><a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span><span class="s">""</span><span class="k2">)</span><span class="k2">;</span></div><span class="number">  4</span>  <span class="k1">if</span><span class="k2">(</span>item.type<span class="k3">=</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span>
<span class="number">  5</span>  <span class="k2">{</span>
<span class="number">  6</span>    
<span class="number">  7</span>    <span class="k1">switch</span><span class="k2">(</span>item.prefix<span class="k2">)</span>
<span class="number">  8</span>    <span class="k2">{</span>
<span class="number">  9</span>    <span class="k1">case</span> NOPREFIX: <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 10</span>    <span class="k1">case</span> ABLE: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Able "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>
<span class="number"> 12</span>    <span class="k1">case</span> VINED: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Vined "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>    <span class="k2">}</span>
<span class="number"> 14</span>
<span class="number"> 15</span>    <span class="k1">switch</span><span class="k2">(</span>item.multiplier<span class="k2">)</span>
<span class="number"> 16</span>    <span class="k2">{</span>
<span class="number"> 17</span>    <span class="k1">case</span> CARDBOARD: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"CardBoard "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>    <span class="k2">}</span>
<span class="number"> 19</span>
<span class="number"> 20</span>    <span class="k1">switch</span><span class="k2">(</span>item.ID<span class="k2">)</span>
<span class="number"> 21</span>    <span class="k2">{</span>
<span class="number"> 22</span>    <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span> <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Sword "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>    <span class="k2">}</span>
<span class="number"> 24</span>
<span class="number"> 25</span>    <span class="k1">if</span><span class="k2">(</span>item.suffix&gt;NOSUFFIX<span class="k2">)</span>
<span class="number"> 26</span>    <span class="k2">{</span>
<span class="number"> 27</span>      <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"of the "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>    <span class="k2">}</span>
<span class="number"> 29</span>
<span class="number"> 30</span>    <span class="k1">switch</span><span class="k2">(</span>item.suffix<span class="k2">)</span>
<span class="number"> 31</span>    <span class="k2">{</span>
<span class="number"> 32</span>    <span class="k1">case</span> NOSUFFIX: <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 33</span>
<span class="number"> 34</span>    <span class="k1">case</span> RAT: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Rat"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>    <span class="k1">case</span> FOX: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Fox"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>    <span class="k1">case</span> WOLF: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Wolf"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span>    <span class="k1">case</span> BULL: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Bull"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>    <span class="k1">case</span> BEAR: <a href="http://www.allegro.cc/manual/al_ustr_append_cstr"><span class="a">al_ustr_append_cstr</span></a><span class="k2">(</span>tip,<span class="s">"Bear"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>
<span class="number"> 40</span>    <span class="k2">}</span>
<span class="number"> 41</span>  <span class="k2">}</span>
<span class="number"> 42</span>
<div class="highlight"><span class="number"> 43</span>  <span class="k3">*</span>result <span class="k3">=</span> tip<span class="k2">;</span></div><span class="number"> 44</span><span class="k2">}</span>
</div></div><p>

Calling the function:
</p><div class="source-code snippet"><div class="inner"><pre>ShowToolTip<span class="k2">(</span>Inventory<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>, <span class="k3">&amp;</span>tip<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fishcake)</author>
		<pubDate>Mon, 18 Jul 2011 13:36:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ahh hey that does make sense. Thanks Fish
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lance5057)</author>
		<pubDate>Mon, 18 Jul 2011 13:59:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This is simpler:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ALLEGRO_USTR"><span class="a">ALLEGRO_USTR</span></a> <span class="k3">*</span>ShowToolTip<span class="k2">(</span>Item item<span class="k2">)</span>
<span class="k2">{</span>
  <a href="http://www.allegro.cc/manual/ALLEGRO_USTR"><span class="a">ALLEGRO_USTR</span></a> <span class="k3">*</span>tip<span class="k3">=</span><a href="http://www.allegro.cc/manual/al_ustr_new"><span class="a">al_ustr_new</span></a><span class="k2">(</span><span class="s">""</span><span class="k2">)</span><span class="k2">;</span>
  <span class="c">// ...</span>
  <span class="k1">return</span> tip<span class="k2">;</span>
<span class="k2">}</span>

<a href="http://www.allegro.cc/manual/ALLEGRO_USTR"><span class="a">ALLEGRO_USTR</span></a> <span class="k3">*</span>tip <span class="k3">=</span> ShowToolTip<span class="k2">(</span>item<span class="k2">)</span><span class="k2">;</span> <span class="c">// maybe it should be called GetToolTip()</span>
</pre></div></div><p>

Also, you are passing the item by value. You may want to pass its pointer (or by reference if using C++).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Mon, 18 Jul 2011 14:07:17 +0000</pubDate>
	</item>
</rss>
