<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Displaying int as text.</title>
		<link>http://www.allegro.cc/forums/view/591679</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 01 Jun 2007 23:19:00 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m doing some testing and just trying to check to see if my functions are working as they should but I&#39;m not sure how I can display my results with textout using an int.</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> cPlayer::gain_exp<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
  set_totalexp<span class="k2">(</span>get_totalexp<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">10</span><span class="k2">)</span><span class="k2">;</span>    
<span class="k2">}</span>

<span class="c">// Elsewhere</span>

  player <span class="k3">=</span> <span class="k1">new</span> cPlayer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>

  <span class="k1">if</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_A<span class="k2">]</span><span class="k2">)</span>
    player-&gt;gain_exp<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Fri, 01 Jun 2007 09:08:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> i<span class="k3">=</span><span class="n">32</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>...,<span class="s">"The value of 'i' is: %i"</span>,i<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ceagon Xylas)</author>
		<pubDate>Fri, 01 Jun 2007 09:39:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Fri, 01 Jun 2007 19:04:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>There are many more options to format the number, and to use different types (like floats or strings). Read about them here:<br /><span class="source-code"><a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 01 Jun 2007 19:37:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have another problem that&#39;s sorta unrelated to the topic but I&#39;m going to just stick it in here.</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> cStats::calc_lvl<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">if</span> <span class="k2">(</span>total_exp <span class="k3">&gt;</span><span class="k3">=</span> exp_to_next_lvl<span class="k2">)</span>
    <span class="k1">if</span> <span class="k2">(</span>lvl <span class="k3">!</span><span class="k3">=</span> max_lvl<span class="k2">)</span>
      lvl<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

This function is being put into my game loop somewhere, and somewhere else I&#39;m increasing total_exp using a different function.  The problem is that once I reach the first exp_to_next_lvl (which happens to be 100) it won&#39;t stop incrementing until it reaches max_lvl, which is 20.  It&#39;s suppose to increment lvl once after total_exp matches exp_to_next_lvl, obviously, but it&#39;s just not doing that.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Fri, 01 Jun 2007 20:06:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
This function is being put into my game loop somewhere, and somewhere else I&#39;m increasing total_exp using a different function. The problem is that once I reach the first exp_to_next_lvl (which happens to be 100) it won&#39;t stop incrementing until it reaches max_lvl, which is 20. It&#39;s suppose to increment lvl once after total_exp matches exp_to_next_lvl, obviously, but it&#39;s just not doing that.
</p></div></div><p>

You need to reset <tt>total_exp</tt> to 0 for one thing. How you change <tt>exp_to_next_lvl</tt> m,ay also be suspect. You haven&#39;t posted enough code though.</p><p>edit: Actually, you may not need to reset <tt>total_exp</tt> to 0. It depens on what you mean by exp_to_next_lvl.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Fri, 01 Jun 2007 20:26:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I just have something really simple like:</p><div class="source-code snippet"><div class="inner"><pre>cStats::cStats<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
  lvl <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
  max_lvl <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>

  total_exp <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
  exp_to_next_lvl <span class="k3">=</span> lvl <span class="k3">*</span> <span class="n">100</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Fri, 01 Jun 2007 20:33:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That part gets executed for the first level, when the class is created, and not again. You have to set exp_to_next_lvl to the amount of exp_to_the_next_level when it changes. Actually, you <i>should</i> make a function ExpToNextLevel(), that returns the amount needed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 01 Jun 2007 20:37:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So <tt>exp_to_next_lvl</tt> is only calculated once then (when the constructor is called)? <tt>exp_to_next_lvl</tt> will always be 100.</p><p>edit: A pox on CGamesPlay. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Fri, 01 Jun 2007 20:42:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> get_exp_to_next_lvl<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <span class="k1">return</span> exp_to_next_lvl<span class="k2">;</span> <span class="k2">}</span>

...

<span class="k1">void</span> cStats::calc_lvl<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">if</span> <span class="k2">(</span>total_exp <span class="k3">&gt;</span><span class="k3">=</span> exp_to_next_lvl<span class="k2">)</span>
    <span class="k1">if</span> <span class="k2">(</span>lvl <span class="k3">!</span><span class="k3">=</span> max_lvl<span class="k2">)</span>
    <span class="k2">{</span>
      lvl<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
      get_exp_to_next_lvl<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>

Hmm?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Fri, 01 Jun 2007 20:56:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> get_exp_to_next_lvl<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
    <span class="c">// Calculate how many experience before the player levels up</span>
    <span class="k1">return</span> lvl <span class="k3">*</span> <span class="n">100</span><span class="k2">;</span>
<span class="k2">}</span>

<span class="k1">void</span> cStats::calc_lvl<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">if</span> <span class="k2">(</span>total_exp <span class="k3">&gt;</span><span class="k3">=</span> get_exp_to_next_lvl<span class="k2">(</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> lvl <span class="k3">!</span><span class="k3">=</span> max_lvl<span class="k2">)</span>
    lvl<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 01 Jun 2007 20:58:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you very much <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Fri, 01 Jun 2007 21:03:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You don&#39;t even need a <tt>get_exp_to_next_lvl()</tt> function.</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> cStats::calc_lvl<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
    <span class="k1">if</span> <span class="k2">(</span>total_exp <span class="k3">&gt;</span><span class="k3">=</span> exp_to_next_lvl <span class="k3">&amp;</span><span class="k3">&amp;</span> lvl <span class="k3">!</span><span class="k3">=</span> max_lvl<span class="k2">)</span> <span class="k2">{</span>
        lvl<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
        exp_to_next_lvl <span class="k3">=</span> lvl <span class="k3">*</span> <span class="n">100</span><span class="k2">;</span>
    <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Fri, 01 Jun 2007 21:12:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm..  One more thing.  I want to make it so it&#39;s not possible to gain experience past max_experience (1000) but nothing I&#39;ve tried seems to work.</p><div class="source-code snippet"><div class="inner"><pre><span class="c">// Inside the calc_lvl function</span>

<span class="k1">if</span> <span class="k2">(</span>total_exp <span class="k3">&gt;</span><span class="k3">=</span> max_exp<span class="k2">)</span>
  <span class="k1">return</span><span class="k2">;</span>

<span class="c">// Or maybe this?</span>

<span class="k1">if</span> <span class="k2">(</span>total_exp <span class="k3">&gt;</span><span class="k3">=</span> max_exp<span class="k2">)</span>
  total_exp <span class="k3">=</span> max_exp<span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Fri, 01 Jun 2007 21:16:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
You don&#39;t even need a get_exp_to_next_lvl() function.
</p></div></div><p>Of course not, but I think it makes more sense to have one than to keep a variable with it around all the time. Keeping it as a variable means you have to keep it synchronized with the current level... just a waste of time.</p><p>[append]<br />The second one, julian_boolean, but use = instead of ==. == is for comparing things.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 01 Jun 2007 21:17:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry that was just a typo.  It&#39;s still going beyond 1000.  Well but then it switches back to 1000, but it looks kinda buggy that way.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Fri, 01 Jun 2007 21:20:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>max it whenever you add anything to exp. You should have an add_exp() function somewhere that checks for &lt;= 1000. std::min() is a useful friend here:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> cCharacter::add_exp<span class="k2">(</span><span class="k1">int</span> xp_added<span class="k2">)</span> <span class="k2">{</span>
  xp <span class="k3">=</span> std::min<span class="k2">(</span>xp <span class="k3">+</span> xp_added, max_xp<span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
Somm&#39;n&#39; like that.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Fri, 01 Jun 2007 23:19:00 +0000</pubDate>
	</item>
</rss>
