<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>RPG game help</title>
		<link>http://www.allegro.cc/forums/view/614751</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 29 Oct 2014 21:10:19 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ok so i am making an RPG game. I am in the process of rewriting the ENTIRE game using allegro and a simple tile set that i have made myself.</p><p>but every time i as for help people always tell me one of two things with my program.</p><p>1:<br />they tell me that i need to use structures for my inventory/banking system</p><p>2:<br />they tell me to take the map arrays out of my program and put them in their own separate files</p><p>I know more or less how to use a struct but i have no idea how to use it for the purpose that i want.</p><p>People dont have to tell me that this is ugly I realize its a terrible god aweful way to make an inventory/banking system. but it was what i knew how to do.<br />believe me i have worked on this for a very long time and I dont know how to change it to be more efficient. so could someone please help me out.</p><p>i know most people hate it when people ask for exactly how to do it. but that is pretty much what im asking for at this point, but please explain it to me in great detail if you can.</p><p>You can find the function that actually allows you to mine and get ore at: 1555<br />you can find the inventory storing at: 801<br />you can find the ore banking at: 5152</p><p>ok my computer is being extremely slow at the moment and wont upload my attachment so you can find it here on google sites:</p><p><a href="https://sites.google.com/site/temprpgquestion/go-here-for-the-program">https://sites.google.com/site/temprpgquestion/go-here-for-the-program</a></p><p>Thank you all for the help in advance. i really appreciate it.</p><p>so i am working on the menu screen right now and this is what i have so far
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Antone333)</author>
		<pubDate>Sat, 25 Oct 2014 21:28:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My first suggestion <i>is</i> to break your file apart. Don&#39;t <b><i>EVER</i></b> be afraid of splitting a single large file into smaller parts.</p><ul><li><p>It makes the individual parts easier to read.
</p></li><li><p>It lets you know when things are too tightly coupled (things that rely on each other &quot;too much&quot;).
</p></li><li><p>It helps you avoid distraction.</p></li></ul><p>My second suggestion: Instead of telling us the line numbers you need advice with, specify the name of the function you need help on.</p><p>Line 1555: <span class="source-code"><span class="k1">void</span> Start_Mining<span class="k2">(</span><span class="k2">)</span></span><br />Line 801: <span class="source-code"><span class="k1">void</span> Items_List<span class="k2">(</span><span class="k2">)</span></span><br />Line 5152: (no method; just an <span class="source-code"><span class="k1">if</span><span class="k2">(</span><span class="k2">)</span></span> block)</p><p>My third suggestion: Within your <span class="source-code">Bank_Action<span class="k2">(</span><span class="k2">)</span></span> function, you have long <span class="source-code"><span class="k1">if</span><span class="k2">(</span><span class="k2">)</span></span> blocks. Break those out into their own functions. I&#39;d love to see this 3300-line function broken down to something a little more manageable:</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="k1">void</span> Bank_Action<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"You have: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> bank <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" free bank spaces"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span>    Show_Items_In_Storage<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Would you like to withdraw or deposite?"</span><span class="k2">;</span>
<span class="number">  8</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"1 deposite, 2 withdraw"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  9</span>    cin <span class="k3">&gt;</span><span class="k3">&gt;</span> choice<span class="k2">;</span>
<span class="number"> 10</span>    <span class="k1">if</span><span class="k2">(</span>choice <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>        Bank_Prompt_To_Deposit<span class="k2">(</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="k1">else</span> <span class="k1">if</span><span class="k2">(</span>choice <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 15</span>    <span class="k2">{</span>
<span class="number"> 16</span>        Bank_Prompt_To_Withdraw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>    <span class="k2">}</span>
<span class="number"> 18</span><span class="k2">}</span>
</div></div><p>

Now within <span class="source-code">Bank_Prompt_To_Deposit<span class="k2">(</span><span class="k2">)</span></span>, you have its own <span class="source-code"><span class="k1">if</span><span class="k2">(</span><span class="k2">)</span></span> blocks:</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="k1">void</span> Bank_Prompt_To_Deposit<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"What would you like to deposite?"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  4</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"1 ore, 2 fish, 3 wood, 4 cooked fish"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  5</span>    cin <span class="k3">&gt;</span><span class="k3">&gt;</span> choice<span class="k2">;</span>
<span class="number">  6</span>    <span class="k1">if</span><span class="k2">(</span>choice <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  7</span>    <span class="k2">{</span>
<span class="number">  8</span>        Bank_Prompt_To_Deposit_Ore<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>    <span class="k2">}</span>
<span class="number"> 10</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>choice <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 11</span>    <span class="k2">{</span>
<span class="number"> 12</span>        Bank_Prompt_To_Deposit_Raw_Fish<span class="k2">(</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="k1">else</span> <span class="k1">if</span><span class="k2">(</span>choice <span class="k3">=</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span>
<span class="number"> 15</span>    <span class="k2">{</span>
<span class="number"> 16</span>        Bank_Prompt_To_Deposit_Wood<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>    <span class="k2">}</span>
<span class="number"> 18</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>choice <span class="k3">=</span><span class="k3">=</span> <span class="n">4</span><span class="k2">)</span>
<span class="number"> 19</span>    <span class="k2">{</span>
<span class="number"> 20</span>        Bank_Prompt_To_Deposit_Cooked_Fish<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>    <span class="k2">}</span>
<span class="number"> 22</span><span class="k2">}</span>
</div></div><p>

You&#39;d do the same for all the rest of the stuff.</p><p>Last of all, I&#39;m not exactly sure what question you&#39;re asking.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/614751/1006414#target">Antone333</a> said:</div><div class="quote"><p>...please explain it to me in great detail if you can...</p></div></div><p>

What did you want explained?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OnlineCop)</author>
		<pubDate>Sun, 26 Oct 2014 22:39:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Something that would shorten your level select code would be a function pointer array. Then all you would need to do is index the array to run the function to select the level. </p><p>Example :</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="k1">void</span> SelectLevel1<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  2</span><span class="k1">void</span> SelectLevel2<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span><span class="k1">void</span> SelectLevel3<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">typedef</span> <span class="k1">void</span> <span class="k2">(</span><span class="k3">*</span>LEVEL_SELECTOR_FUNC<span class="k2">)</span><span class="k2">(</span><span class="k2">)</span>
<span class="number">  6</span>
<span class="number">  7</span>LEVEL_SELCTOR_FUNC level_selector_array<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number">  8</span>   SelectLevel1 , SelectLevel2 , SelectLevel3
<span class="number">  9</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="k1">int</span> level <span class="k3">=</span> GetUserLevelInput<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span><span class="c">// run level function</span>
<span class="number"> 13</span><span class="k3">*</span>level_selector_array<span class="k2">[</span>level<span class="k2">]</span><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span>
<span class="number"> 16</span><span class="k1">void</span> SelectLevel1<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 17</span>   <span class="c">// whatever</span>
<span class="number"> 18</span><span class="k2">}</span>
</div></div><p>

<s>But what you really want is probably to load each level from a file.</s> nvm, can&#39;t read
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 27 Oct 2014 07:54:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>@OnlineCop</p><p>Wow. yeah i did not think about that. It would take care of not knowing how to use structs. i would still have to use that big long ugly list everything out but it would be so much easier just to list it once in its own function. thanks a bunch.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Antone333)</author>
		<pubDate>Mon, 27 Oct 2014 23:05:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think that two things will help this code: the use of <span class="source-code"><span class="k1">struct</span></span> or <span class="source-code"><span class="k1">class</span></span>, and replacing redundant code with functions. Many things can be simplified, like when you have text that is identical in all places except maybe the monster name or the amount of damage taken.</p><p>One example is <span class="source-code"><span class="k1">void</span> Monster_1<span class="k2">(</span><span class="k2">)</span></span>:</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="k1">int</span> Monster <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">8</span><span class="k3">+</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  2</span>
<span class="number">  3</span>  <span class="k1">int</span> Monster_Health <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">5</span><span class="k3">+</span><span class="n">5</span><span class="k2">;</span>
<span class="number">  4</span>  <span class="k1">int</span> Monster_Attack <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">5</span><span class="k3">+</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  5</span>  <span class="k1">int</span> Monster_Defence <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">5</span><span class="k3">+</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>  <span class="k1">if</span><span class="k2">(</span>Monster <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  8</span>  <span class="k2">{</span>
<span class="number">  9</span>    <span class="c">//system("cls");</span>
<span class="number"> 10</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"A Rat has emerged."</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 11</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a><span class="k2">(</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Enemy: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Health: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> Monster_Health <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Attack: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> Monster_Attack <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Defence: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> Monster_Defence <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 13</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"You: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Health: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> Health <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Attack: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> Attack_Level <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Defence: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> Defence_Level <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 14</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a><span class="k2">(</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"You ready your weapon in the: 1 Defencive Position, 2 Offencive Position."</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 16</span>    cin <span class="k3">&gt;</span><span class="k3">&gt;</span> Monster<span class="k2">;</span>
<span class="number"> 17</span>    <span class="k1">if</span><span class="k2">(</span>Monster <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 18</span>    <span class="k2">{</span>
<span class="number"> 19</span>      cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"You ready your weapon for the Rat to attack."</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 20</span>      cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"The rat with its sharp fengs jumps at you. "</span><span class="k2">;</span>
<span class="number"> 21</span>      Monster <span class="k3">=</span> Monster_Attack <span class="k3">-</span> Defence_Level<span class="k2">;</span>
<span class="number"> 22</span>      cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"It deals "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> Monster <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" damage."</span><span class="k2">;</span>
<span class="number"> 23</span>    <span class="k2">}</span>
<span class="number"> 24</span>  <span class="k2">}</span>
<span class="number"> 25</span>  <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>Monster <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 26</span>  <span class="k2">{</span>
<span class="number"> 27</span>    <span class="c">// ...</span>
<span class="number"> 28</span>  <span class="k2">}</span>
<span class="number"> 29</span>  <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>Monster <span class="k3">=</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span>
<span class="number"> 30</span>  <span class="k2">{</span>
<span class="number"> 31</span>    <span class="c">// ...</span>
<span class="number"> 32</span>  <span class="k2">}</span>
</div></div><p>

You can convert this into a simple function that you can reuse multiple times:</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="k1">int</span> Fight_Monster<span class="k2">(</span>
<span class="number">  2</span>  <span class="k1">const</span> string <span class="k3">&amp;</span>monster_name,
<span class="number">  3</span>  <span class="k1">const</span> string <span class="k3">&amp;</span>monster_attack_type,
<span class="number">  4</span>  <span class="k1">const</span> <span class="k1">int</span> <span class="k3">&amp;</span>monster_health,
<span class="number">  5</span>  <span class="k1">const</span> <span class="k1">int</span> <span class="k3">&amp;</span>monster_attack,
<span class="number">  6</span>  <span class="k1">const</span> <span class="k1">int</span> <span class="k3">&amp;</span>monster_defence,
<span class="number">  7</span>  <span class="k1">const</span> <span class="k1">int</span> <span class="k3">&amp;</span>health,
<span class="number">  8</span>  <span class="k1">const</span> <span class="k1">int</span> <span class="k3">&amp;</span>attack_level,
<span class="number">  9</span>  <span class="k1">const</span> <span class="k1">int</span> <span class="k3">&amp;</span>defence_level
<span class="number"> 10</span><span class="k2">)</span>
<span class="number"> 11</span><span class="k2">{</span>
<span class="number"> 12</span>  cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"A "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> monster_name <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" has emerged."</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span>  cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Enemy: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl
<span class="number"> 15</span>     <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Health: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> monster_health <span class="k3">&lt;</span><span class="k3">&lt;</span> endl
<span class="number"> 16</span>     <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Attack: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> monster_attack <span class="k3">&lt;</span><span class="k3">&lt;</span> endl
<span class="number"> 17</span>     <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Defence: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> monster_defence <span class="k3">&lt;</span><span class="k3">&lt;</span> endl
<span class="number"> 18</span>     <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 19</span>
<span class="number"> 20</span>  cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"You: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl
<span class="number"> 21</span>     <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Health: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> health <span class="k3">&lt;</span><span class="k3">&lt;</span> endl
<span class="number"> 22</span>     <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Attack: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> attack_level <span class="k3">&lt;</span><span class="k3">&lt;</span> endl
<span class="number"> 23</span>     <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Defence: "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> defence_level <span class="k3">&lt;</span><span class="k3">&lt;</span> endl
<span class="number"> 24</span>     <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 25</span>
<span class="number"> 26</span>  cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"You ready your weapon in the: 1 Defencive Position, 2 Offencive Position."</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 27</span>
<span class="number"> 28</span>  <span class="k1">int</span> AttackOrDefendResponse<span class="k2">;</span>
<span class="number"> 29</span>  cin <span class="k3">&gt;</span><span class="k3">&gt;</span> AttackOrDefendResponse<span class="k2">;</span>
<span class="number"> 30</span>
<span class="number"> 31</span>  <span class="k1">int</span> DamageTaken <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 32</span>  <span class="k1">if</span><span class="k2">(</span>AttackOrDefendResponse <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 33</span>  <span class="k2">{</span>
<span class="number"> 34</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"You ready your weapon for the "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> monster_name <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" to attack."</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 35</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> monster_attack_type <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 36</span>    DamageTaken <span class="k3">=</span> monster_attack <span class="k3">-</span> defence_level<span class="k2">;</span>
<span class="number"> 37</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"It deals "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> DamageTaken <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" damage."</span><span class="k2">;</span>
<span class="number"> 38</span>  <span class="k2">}</span>
<span class="number"> 39</span>
<span class="number"> 40</span>  <span class="k1">return</span> DamageTaken<span class="k2">;</span>
<span class="number"> 41</span><span class="k2">}</span>
<span class="number"> 42</span>
<span class="number"> 43</span><span class="k1">void</span> Monster_1<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 44</span><span class="k2">{</span>
<span class="number"> 45</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 46</span>
<span class="number"> 47</span>  <span class="k1">int</span> Monster <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">8</span><span class="k3">+</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 48</span>
<span class="number"> 49</span>  <span class="k1">int</span> Monster_Health <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">5</span><span class="k3">+</span><span class="n">5</span><span class="k2">;</span>
<span class="number"> 50</span>  <span class="k1">int</span> Monster_Attack <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">5</span><span class="k3">+</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 51</span>  <span class="k1">int</span> Monster_Defence <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">5</span><span class="k3">+</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 52</span>
<span class="number"> 53</span>  <span class="k1">int</span> DamageTaken <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 54</span>  <span class="k1">if</span><span class="k2">(</span>Monster <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 55</span>  <span class="k2">{</span>
<span class="number"> 56</span>    DamageTaken <span class="k3">=</span> Fight_Monster<span class="k2">(</span><span class="s">"Rat"</span>, <span class="s">"The rat with its sharp fengs jumps at you."</span>,
<span class="number"> 57</span>      Monster_Health, Monster_Attack, Monster_Defence,
<span class="number"> 58</span>      Health, Attack_Level, Defence_Level
<span class="number"> 59</span>    <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span>  <span class="k2">}</span>
<span class="number"> 61</span>  <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>Monster <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 62</span>  <span class="k2">{</span>
<span class="number"> 63</span>    DamageTaken <span class="k3">=</span> Fight_Monster<span class="k2">(</span><span class="s">"Spider"</span>, <span class="s">"The spider with its long legs and poisonous bite jumps at you."</span>,
<span class="number"> 64</span>      Monster_Health, Monster_Attack, Monster_Defence,
<span class="number"> 65</span>      Health, Attack_Level, Defence_Level
<span class="number"> 66</span>    <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 67</span>  <span class="k2">}</span>
<span class="number"> 68</span>  <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>Monster <span class="k3">=</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span>
<span class="number"> 69</span>  <span class="k2">{</span>
<span class="number"> 70</span>    DamageTaken <span class="k3">=</span> Fight_Monster<span class="k2">(</span><span class="s">"Snake"</span>, <span class="s">"The spider with its venomous fangs lunges at you."</span>,
<span class="number"> 71</span>      Monster_Health, Monster_Attack, Monster_Defence,
<span class="number"> 72</span>      Health, Attack_Level, Defence_Level
<span class="number"> 73</span>    <span class="k2">)</span><span class="k2">;</span>
<span class="number"> 74</span>  <span class="k2">}</span>
<span class="number"> 75</span>  <span class="c">// ...and so on...</span>
<span class="number"> 76</span>
<span class="number"> 77</span>  <span class="c">// Do something with 'DamageTaken'...</span>
<span class="number"> 78</span><span class="k2">}</span>
</div></div><p>

As you can see, the text is almost the same for each battle, the logic is nearly the same, and you can simply pass in parameters to change the parts that should differ.</p><p>Next, use of <span class="source-code"><span class="k1">struct</span></span> or <span class="source-code"><span class="k1">class</span></span>. For C++, they are identical except that the former makes everything <span class="source-code"><span class="k1">public</span></span> unless you specify otherwise, and the latter makes everything <span class="source-code"><span class="k1">private</span></span> unless you specify (respectively).</p><p>Two perfect candidates for a <span class="source-code"><span class="k1">struct</span></span> are monsters and the player.</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="k1">struct</span> S_Player
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  string Name<span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span>  <span class="k1">int</span> Health<span class="k2">;</span>
<span class="number">  6</span>  <span class="k1">int</span> Health_Level<span class="k2">;</span>
<span class="number">  7</span>  <span class="k1">int</span> Health_Skill<span class="k2">;</span>
<span class="number">  8</span>  <span class="k1">int</span> Health_Skill_M<span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span>  <span class="k1">int</span> Attack_Level<span class="k2">;</span>
<span class="number"> 11</span>  <span class="k1">int</span> Attack_Skill<span class="k2">;</span>
<span class="number"> 12</span>  <span class="k1">int</span> Attack_Skill_M<span class="k2">;</span>
<span class="number"> 13</span>  
<span class="number"> 14</span>  <span class="k1">int</span> Defence_Level<span class="k2">;</span>
<span class="number"> 15</span>  <span class="k1">int</span> Defence_Skill<span class="k2">;</span>
<span class="number"> 16</span>  <span class="k1">int</span> Defence_Skill_M<span class="k2">;</span>
<span class="number"> 17</span>  
<span class="number"> 18</span>  <span class="k1">int</span> Fishing_Level<span class="k2">;</span>
<span class="number"> 19</span>  <span class="k1">int</span> Fishing_Skill<span class="k2">;</span>
<span class="number"> 20</span>  <span class="k1">int</span> Fishing_Skill_M<span class="k2">;</span>
<span class="number"> 21</span>  
<span class="number"> 22</span>  <span class="k1">int</span> Woodcutting_Level<span class="k2">;</span>
<span class="number"> 23</span>  <span class="k1">int</span> Woodcutting_Skill<span class="k2">;</span>
<span class="number"> 24</span>  <span class="k1">int</span> Woodcutting_Skill_M<span class="k2">;</span>
<span class="number"> 25</span>  
<span class="number"> 26</span>  <span class="k1">int</span> Mining_Level<span class="k2">;</span>
<span class="number"> 27</span>  <span class="k1">int</span> Mining_Skill<span class="k2">;</span>
<span class="number"> 28</span>  <span class="k1">int</span> Mining_Skill_M<span class="k2">;</span>
<span class="number"> 29</span>  
<span class="number"> 30</span>  <span class="k1">int</span> Firemaking_Level<span class="k2">;</span>
<span class="number"> 31</span>  <span class="k1">int</span> Firemaking_Skill<span class="k2">;</span>
<span class="number"> 32</span>  <span class="k1">int</span> Firemaking_Skill_M<span class="k2">;</span>
<span class="number"> 33</span>  
<span class="number"> 34</span>  <span class="k1">int</span> Cooking_Level<span class="k2">;</span>
<span class="number"> 35</span>  <span class="k1">int</span> Cooking_Skill<span class="k2">;</span>
<span class="number"> 36</span>  <span class="k1">int</span> Cooking_Skill_M<span class="k2">;</span>
<span class="number"> 37</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>

This is the general <i>structure</i> of the Player. It doesn&#39;t contain any data (yet). It just specifies that anything that gets defined as a <b>Player</b> will have a <span class="source-code">Name</span>, will have <span class="source-code">Health</span> and <span class="source-code">Attack</span>/<span class="source-code">Defence</span> attributes, and so forth.</p><p>You create an instance of the player (which <i>will</i> contain values for all the attributes) like:</p><p><span class="source-code">S_Player player<span class="k2">;</span></span></p><p>Now, you pass around the <span class="source-code">player</span> and it&#39;s much easier to understand whether &quot;Health&quot; belongs to <span class="source-code">monster.Health</span> or <span class="source-code">player.Health</span>.</p><p>If you&#39;re struggling to understand any of these, <b>ask</b>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OnlineCop)</author>
		<pubDate>Tue, 28 Oct 2014 10:45:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah I get both of those just fine and will for sure be adding them into my current remaking of the project. Someone along the line of that console based game told me that I should make the inventory into I think they said boolean structure. And I was like... what? And so I didn&#39;t implant that. I tried looking it up and stuff but I just could not wrap my mind around any way to take a structure such as tuna fish; and tuna.amount; and use that in my inventory system any different then how I am already using my inventory system.couldn&#39;t quite figure out how a boolean would go in there to make it different.</p><p>So where I have those big long if statements where I list everysingle item in the game and repeat for every single item in the game.<br />am I able to pass something like this:</p><p>If(tuna + Items list &lt;= BankSpace)<br />store the item of so much amount;</p><p>I&#39;m on my phone at the moment because I couldn&#39;t sleep so I don&#39;t really remember how that one went exactly. But is that possible to pass all the items through a function like that in an if statement? so I don&#39;t have to type so much? Because that was by far the worst part of typing that code and why I stopped working on it where i did.</p><p>Thanks a lot for all the help you guys.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Antone333)</author>
		<pubDate>Tue, 28 Oct 2014 15:25:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, it&#39;s actually a good idea to pass things through functions for that reason.</p><p>I suggest that you create an enumeration:
</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="k1">enum</span> Ores
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  Copper_Ore,
<span class="number">  4</span>  Tin_Ore,
<span class="number">  5</span>  Blurite_Ore,
<span class="number">  6</span>  Iron_Ore,
<span class="number">  7</span>  Silver_Ore,
<span class="number">  8</span>  Elemental_Ore,
<span class="number">  9</span>  Gold_Ore,
<span class="number"> 10</span>  Mithril_Ore,
<span class="number"> 11</span>  Adamantite_Ore,
<span class="number"> 12</span>  Runite_Ore,
<span class="number"> 13</span>  Magic_Ore,
<span class="number"> 14</span>  Cursed_Ore,
<span class="number"> 15</span>  Blood_Ore,
<span class="number"> 16</span>  Dragon_Ore,
<span class="number"> 17</span>  Crystal_Ore,
<span class="number"> 18</span>
<span class="number"> 19</span>  Number_Of_Ores  <span class="c">// 'Number' enum entries always last</span>
<span class="number"> 20</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>

Then you create an array:</p><div class="source-code snippet"><div class="inner"><pre>  <span class="k1">int</span> All_Ores<span class="k2">[</span>Number_Of_Ores<span class="k2">]</span><span class="k2">;</span>
</pre></div></div><p>

Now instead of keeping track of individual ores, you can specify exactly ONE array, index any of the individual ores whenever you want, and counting up the total ores is as simple as iterating over the array:</p><div class="source-code snippet"><div class="inner"><pre>  <span class="k1">int</span> Total_Ore_Count <span class="k3">=</span> <span class="n">0</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> Number_Of_Ores<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
  <span class="k2">{</span>
    Total_Ore_Count <span class="k3">+</span><span class="k3">=</span> All_Ores<span class="k2">[</span>i<span class="k2">]</span><span class="k2">;</span>
  <span class="k2">}</span>
  cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"You have "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> Total_Ore_Count <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" ores in your inventory."</span><span class="k2">;</span>
</pre></div></div><p>

You&#39;re also able to update only the ore you care about:
</p><div class="source-code snippet"><div class="inner"><pre>  All_Ores<span class="k2">[</span>Mithril_Ore<span class="k2">]</span> <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
</pre></div></div><p>

If you do that with all your other items as well (one for fish types, one for wood types), then you can get rid of that long <span class="source-code"><span class="k1">if</span><span class="k2">(</span><span class="k2">)</span></span> block and condense it down to only a handful of lines.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OnlineCop)</author>
		<pubDate>Tue, 28 Oct 2014 20:14:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks a bunch. i more or less get how to use enum but i think i could use that one.</p><p>can i have an enum within an enum</p><p>for example</p><p>enum AllItems<br />{<br />enum AllOres<br />{<br />copper, tin, so on, number of ore<br />};<br />enum AllFish<br />{<br />Trout, tuna, so on, number of fish<br />};<br />number of total items<br />};<br />/<br />/<br />/<br />/<br />/<br />and also could you please help me figure this out?<br />what i am doing is simply just getting the map to change by changing the Level X and Y value in the code itself. but when i change it like this:<br />from<br />x and y = 0<br />to<br />x = 1<br />y = 0</p><p>nothing happens. it still only displays the first map. but when i get rid of the else and have a double if statement then the opposite happens. only the second map is drawn to the screen.</p><p>i am doing basically the same type of code i used for my character movement in the console to move between the maps. and will have a copy of the map arrays that is left blank except for the added in character and npc. this way i can manipulate on top of the drawn map without having to redraw it. and also the only way i know how to do collision detection.</p><p>void LevelSelect()<br />{</p><p>    int LevelSelectArray[10][10] = {<br />    {1, 2, 3, 4, 5, 6, 7, 8, 9, 10},<br />    {11, 12, 13, 14, 15, 16, 17, 18, 19, 20},<br />    {21, 22, 23, 24, 25, 26, 27, 28, 29, 30},<br />    {31, 32, 33, 34, 35, 36, 37, 38, 39, 40},<br />    {41, 42, 43, 44, 45, 46, 47, 48, 49, 50},<br />    {51, 52, 53, 54, 55, 56, 57, 58, 59, 60},<br />    {61, 62, 63, 64, 65, 66, 67, 68, 69, 70},<br />    {71, 72, 73, 74, 75, 76, 77, 78, 79, 80},<br />    {81, 82, 83, 84, 85, 86, 87, 88, 89, 90},<br />    {91, 92, 93, 94, 95, 96, 97, 98, 99, 100}<br />    };<br />    <br />    int LevelX;<br />    int LevelY;<br />    <br />    bool FirstTime = true;<br />    <br />    if(FirstTime)<br />    {<br />         LevelX = 0;<br />         LevelY = 0;<br />         FirstTime = false;<br />    }<br />    <br />    if(ArrayLevelSelect[LevelX][LevelY] = 1)<br />    {<br />         Level1();<br />    }<br />    else if(ArrayLevelSelect[LevelX][LevelY] = 2)<br />    {<br />         Level2();<br />    }<br />}<br />//for the example the only difference is the 5 and the 10<br />void Level1()<br />{<br />    int Level[5][5] = {<br />    {1, 1, 1, 1, 1},<br />    {1, 0, 0, 0, 1},<br />    {1, 0, 0, 0, 1},<br />    {1, 0, 0, 5, 1},<br />    {1, 1, 1, 1, 1}<br />    };<br />    memcpy(Map, Level, sizeof(Level));<br />}<br />void Level2()<br />{<br />    int Level[5][5] = {<br />    {1, 1, 1, 1, 1},<br />    {1, 0, 0, 0, 1},<br />    {1, 0, 0, 0, 1},<br />    {1, 0, 0, 10, 1},<br />    {1, 1, 1, 1, 1}<br />    };<br />    memcpy(Map, Level, sizeof(Level));<br />}
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Antone333)</author>
		<pubDate>Tue, 28 Oct 2014 20:49:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Nope. Enums are not nestable.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Tue, 28 Oct 2014 20:50:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ok so they are not nestable. but what if i did something like this?</p><p>enum all ore<br />{<br />copper, number of ores<br />}</p><p>enum all fish<br />{<br />tuna, number of fish<br />}</p><p>enum all items<br />{<br />Number of ores, number of fish<br />}
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Antone333)</author>
		<pubDate>Tue, 28 Oct 2014 21:00:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can probably do that. though the last enum may not be needed (I&#39;m not sure of the purpose for that).</p><p>Just note that each enum starts from 0 if you don&#39;t give it a starting value.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Tue, 28 Oct 2014 21:26:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The last enum is not needed: correct. HOWEVER, it just &quot;happens&quot; to be the total number of all the items in the enum, so you don&#39;t have to try to determine the enum&#39;s size at runtime (or remember all the places that you hardcoded the size) in case you need to add any more enum values.</p><p>Logically, you want to separate your &quot;fish&quot; from your &quot;ores&quot;. Wood doesn&#39;t feed you, so won&#39;t make sense to have inside of a massive enum or array that contains food-based items. In the same vein, weapons aren&#39;t armor.</p><p>It makes a LOT more sense to me to have multiple <span class="source-code"><span class="k1">for</span><span class="k2">(</span><span class="k2">)</span></span> loops, one after the other, than to have some massive array of &quot;everything in the game&quot;. My mind just doesn&#39;t work like that.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/614751/1006561#target">Antone333</a> said:</div><div class="quote"><p>if(ArrayLevelSelect[LevelX][LevelY] = 1)</p></div></div><p>

You are <i>assigning</i> the value of <span class="source-code"><span class="n">1</span></span> into <span class="source-code">ArrayLevelSelect<span class="k2">[</span>LevelX<span class="k2">]</span><span class="k2">[</span>LevelY<span class="k2">]</span></span> here. You probably meant <span class="source-code"><span class="k3">=</span><span class="k3">=</span></span> (equality).</p><p>Next, onto the subject of your maps.</p><p>I have always been of the mindset that all levels in a map should <i>potentially</i> be different sizes: the memory can be allocated when you need it, and freed when you&#39;re done with it.</p><p>Some maps are the &quot;interiors&quot; of a large house, so they can be smaller. Other maps are vast oceans with a special hidden island right in the middle of them, and can be much larger.</p><p>When you create a level, there should be a <span class="source-code"><span class="k1">class</span></span> that is specifically dedicated to all aspects of its generation and tear-down.  You should pass in the level number you want loaded, and get a level back. You should pretend that you have NO idea what&#39;s going on &quot;behind the curtain&quot; when you request a level from it.</p><p>This <span class="source-code"><span class="k1">class</span></span> might have the array in memory. It might load it in from a file. It might parse a <a href="http://www.mapeditor.org">Tiled</a>-generated XML file. That&#39;s the point: it should be a mystery to everything else so you can change it at any time in the future, and as long as &quot;give me level X&quot; always returns a predictable map structure, how it works should always be a black box.</p><p>Last of all, <u><b><i>DON&#39;T</i></b></u> (did you see all the emphasis I put there?) create function calls for levels and things that &quot;will come&quot;. Don&#39;t copy-and-paste 70 &quot;placeholder&quot; levels when you really only have about 7-8 truly defined. Don&#39;t do placeholder fish/wood/weapons/armor. Don&#39;t create &quot;dummy&quot; monsters that you&#39;ll revisit &quot;someday&quot;.</p><p>It might make you much less overwhelmed if you drop your file down from the nearly 10,000 lines to about 5,000. Strip away ALL pre-&quot;defined&quot; stuff: get rid of levels 9-70. Get rid of all enemies but two: the rat, and maybe the spider. Get rid of all types of fish. You can leave some of the fish/wood/monster &quot;types&quot; in comments somewhere so you remember them later, but get them out of your current codebase.</p><p>Once you have all that, post your new source file results, and we&#39;ll move on to breaking them apart into individual files.</p><p>Your Monsters should be in one or more files (either a massive <b>monster.cpp</b> file, or individual <b>monster_rat.cpp</b>/<b>monster_spider.cpp</b> files). Your Items should be in one or more files (<b>items.cpp</b> or <b>item_wood.cpp</b>/<b>item_fish.cpp</b>, etc.). Etcetera, etcetera.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OnlineCop)</author>
		<pubDate>Wed, 29 Oct 2014 10:15:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>OnlineCop, while I agree that separating the item types could be more logical, its a lot more work to manage. Using a single item namespace allows for more efficient loading and saving as you don&#39;t have to figure out the category of the item first, and no item ids will ever overlap.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Wed, 29 Oct 2014 11:35:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think that the superfluous enum in Tomasu view was this:</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/614751/1006563#target">Antone333</a> said:</div><div class="quote"><p> enum all items<br />{<br />Number of ores, number of fish<br />} </p></div></div><p>The &quot;last item in an enum is the one that enumerates the enum itself&quot; is quite handy <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Wed, 29 Oct 2014 13:54:20 +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/614751/1006582#target">pkrcel</a> said:</div><div class="quote"><p> I think that the superfluous enum in Tomasu view was this:</p></div></div><p>Not only is it superfluous, it also won&#39;t work as intended, since it will give the number of ores as 0, the number of fish as 1, etc...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Wed, 29 Oct 2014 18:52:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well in case it is <a href="http://en.wikipedia.org/wiki/C%2B%2B11#Strongly_typed_enumerations">strongly typed</a> I guess ti would be only superfluous, but of course in this case......er now that I come to think of it, would it be even possible?</p><p>The names should clash as multiple definition? (too rusty to remember <img src="http://www.allegro.cc/forums/smileys/angry.gif" alt="&gt;:(" />)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pkrcel)</author>
		<pubDate>Wed, 29 Oct 2014 18:58:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thomas, while I agree with this, I&#39;m trying to work with his code on his programming level.</p><p>If I were talking to LennyLen, Arthur or Trent, I&#39;d be suggesting more advanced methods. I feel that these topics wouldn&#39;t be appropriate for where he&#39;s at now, so I&#39;m doing my best to suggest things that will help him get this project far enough along that he can see some significant success.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OnlineCop)</author>
		<pubDate>Wed, 29 Oct 2014 20:34: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/614751/1006601#target">OnlineCop</a> said:</div><div class="quote"><p>Thomas, while I agree with this, I&#39;m trying to work with his code on his programming level.</p></div></div><p>I honestly think throwing more code at the problem just makes it harder <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> an item is an item, no matter the category. I think that is pretty darn simple <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Wed, 29 Oct 2014 20:47:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>@OnlineCop</p><p>Oh. wow. duh. haha == i know that. thats a silly mistake. </p><p>ok so my maps work well now and i have loaded 2 in.<br />I have also drawn in my player in a layer on top of the tilemap like this:</p><p>1 wall 2 grass 0 player</p><p>11111<br />12221<br />12221<br />12221<br />11111</p><p>11111<br />10221<br />12221<br />12221<br />11111</p><p>in the second array the only thing that gets drawn is the player and everything else is blank. i did this so the player can move freely ontop of the map without changing the map itself.</p><p>so a couple of things.</p><p>first of all, I know i am going to get crap for having all those huge arrays in my program itself. i get it. they should be in different files. and i am also seeing the result of it when the game is loading in the maps. it takes a minute. and this is only 2 maps!</p><p>but i dont know how to use an array in a txt file like that. i have tried but i only know how to do simple variables and store them in an array using fstream. so if someone could help me out with that i would be grateful.</p><p>and also, i am trying to figure out how to at this time make the player move. I am going for the same type of movement i have in my console game that i will repost. but i am pretty sure i will have to make the game redraw every time and i thought i had that working but it doesnt work so i will post my current project aswell</p><p>and a final question comes when i create my inventory equipment and my incomplete date time thing. when you create them by pressing the &quot;buttons&quot; on the toolbar display it takes a couple of clicks before the new display shows up. and at line 373 of Game() i thought that would close the window. but for some reason it doesnt and i dont know why.<br />/<br />/<br />/<br />/<br />/<br />for the console game go to Line 1164 GameMechanics() to see how the player moves when down is pressed</p><p>for the Allegro 5 game go to line 470 PlayerMovement() to see how i thought the player should move when down is pressed.<br />just above there at 444 of Game() is where i draw the two tilemaps<br />and PlayerMovement() is passed through Game() at line 321<br />/<br />/<br />/<br />/<br />/<br />/<br />Thank you all so much for the help!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Antone333)</author>
		<pubDate>Wed, 29 Oct 2014 21:10:19 +0000</pubDate>
	</item>
</rss>
