<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>RPG game (Arrays, Structs Message boxes)</title>
		<link>http://www.allegro.cc/forums/view/614571</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 19 Aug 2014 23:35:47 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>To start with, I am making an RPG (rogue like more or less) and it is all made using the the console. I am wanting to work on remaking it using allegro. I know how to use a tile map for integers and am thinking i know how to do simple collision within the array. but i do not like having to make my maps using integers. it is difficult for me to keep track of. So two ways i came up with to solve this are as follow:<br />1: make the tile map read the characters and create the map that way<br />2: Convert character array into integer array and then from there i know how to make tile map already</p><p>maps look something like this</p><p>@ player, # wall, M mountain(mine), T tree, W water, + next map, - previous map</p><p>~ just for the sake of this forum wont let me put in a bunch of &#39; &#39; it still doesnt quite come out right. but what ever.</p><p>map[][] =<br />{<br />&quot;##########&quot;,<br />&quot;#@~~~~~MM#&quot;,<br />&quot;#~~~TT~~M#&quot;,<br />&quot;#~~~~~~~~#&quot;,<br />&quot;#~~~WW~~~#&quot;,<br />&quot;#-~~~W~~+#&quot;,<br />&quot;##########&quot;<br />}<br />so any help with this is greatly appreciated.</p><p>next, I have a very poor inventory system and it is pretty much a pain in the <span class="cuss"><span>ass</span></span> to get anything done using it... and yet i have a bunch of items already in game using all integers.</p><p>Can someone point me in the right direction to learning structs for an inventory and banking system? see the attached files for how i have it already. it works how i have it but i know there has to be a better way to do this. see lines 801 for inventory and 3844 for bank also see 2190 for cutting down wood, fishing mining and cooking are similar in structure.</p><p>Finally i want to know if there is a way to make a native message box where the buttons are custom. for example.</p><p>ALLEGRO_MESSAGEBOX_YES_NO now what if i wanted to ask the player if they want to go to the left or the right for example</p><p>ALLEGRO_MESSAGEBOX_LEFT_RIGHT I know that this doesnt work. but i want to know if there is a way of doing something along these lines
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Antone333)</author>
		<pubDate>Tue, 19 Aug 2014 04:45:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="source-code"><a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a></span> does have a <span class="source-code">buttons</span> argument which in principle lets you have custom buttons. It doesn&#39;t look like that&#39;s implemented under Windows though (but some quick searching suggests that this is possible).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 19 Aug 2014 06:34:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can use &lt;pre&gt;&lt;/pre&gt; tags for that :</p><pre>       ###</pre><p>

To make a tilemap of integer tiles from a map of char you can simply map your chars to integers :</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">typedef</span> <span class="k1">struct</span> TILEINFO <span class="k2">{</span>
<span class="number">  2</span>   <span class="k1">char</span> c<span class="k2">;</span>
<span class="number">  3</span>   <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> description<span class="k2">;</span>
<span class="number">  4</span>   <span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">;</span>
<span class="number">  5</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> tile<span class="k2">;</span>
<span class="number">  6</span><span class="k2">}</span>
<span class="number">  7</span>
<span class="number">  8</span>TILEINFO tileinfo<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number">  9</span>   <span class="k2">{</span><span class="s">'#'</span> , <span class="s">"Wall"</span>      , <span class="n">0</span> , <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Wall.png"</span>     <span class="k2">}</span>,
<span class="number"> 10</span>   <span class="k2">{</span><span class="s">'@'</span> , <span class="s">"Player"</span>    , <span class="n">1</span> , <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Player.png"</span>   <span class="k2">}</span>,
<span class="number"> 11</span>   <span class="k2">{</span><span class="s">'~'</span> , <span class="s">"Empty"</span>     , <span class="n">2</span> , <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Empty.png"</span>    <span class="k2">}</span>,
<span class="number"> 12</span>   <span class="k2">{</span><span class="s">'M'</span> , <span class="s">"Mountain"</span>  , <span class="n">3</span> , <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Mountain.png"</span> <span class="k2">}</span>,
<span class="number"> 13</span>   <span class="k2">{</span><span class="s">'T'</span> , <span class="s">"Tree"</span>      , <span class="n">4</span> , <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Tree.png"</span>     <span class="k2">}</span>,
<span class="number"> 14</span>   <span class="k2">{</span><span class="s">'W'</span> , <span class="s">"Water"</span>     , <span class="n">5</span> , <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Water.png"</span>    <span class="k2">}</span>,
<span class="number"> 15</span>   <span class="k2">{</span><span class="s">'+'</span> , <span class="s">"PlusLevel"</span> , <span class="n">6</span> , <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"PlusLevel.png"</span><span class="k2">}</span>
<span class="number"> 16</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 17</span>
<span class="number"> 18</span><span class="p">#define TILEINFOSIZE 7</span>
<span class="number"> 19</span>
<span class="number"> 20</span><span class="c">//Then you have your char map :</span>
<span class="number"> 21</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> map1<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number"> 22</span>   <span class="k2">{</span><span class="s">"######"</span><span class="k2">}</span>,
<span class="number"> 23</span>   <span class="k2">{</span><span class="s">"#@~~M#"</span><span class="k2">}</span>,
<span class="number"> 24</span>   <span class="k2">{</span><span class="s">"#~~MM#"</span><span class="k2">}</span>,
<span class="number"> 25</span>   <span class="k2">{</span><span class="s">"#W~T+#"</span><span class="k2">}</span>,
<span class="number"> 26</span>   <span class="k2">{</span><span class="s">"######"</span><span class="k2">}</span>,
<span class="number"> 27</span>   <span class="k2">{</span><span class="n">0</span><span class="k2">}</span>
<span class="number"> 28</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 29</span>
<span class="number"> 30</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> map <span class="k3">=</span> map1<span class="k2">;</span>
<span class="number"> 31</span><span class="c">// to draw (all of) your map :</span>
<span class="number"> 32</span><span class="k1">int</span> row <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 33</span><span class="k1">int</span> y <span class="k3">=</span> mapy<span class="k2">;</span>
<span class="number"> 34</span><span class="k1">while</span> <span class="k2">(</span>map<span class="k2">[</span>row<span class="k2">]</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 35</span>   <span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 36</span>   <span class="k1">int</span> x <span class="k3">=</span> mapx<span class="k2">;</span>
<span class="number"> 37</span>   <span class="k1">while</span> <span class="k2">(</span>i <span class="k3">&lt;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_764.html" target="_blank">strlen</a><span class="k2">(</span>map<span class="k2">[</span>row<span class="k2">]</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 38</span>      <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> ndx <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> ndx <span class="k3">&lt;</span> TILEINFOSIZE <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>ndx<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 39</span>         <span class="k1">if</span> <span class="k2">(</span>tileinfo<span class="k2">[</span>ndx<span class="k2">]</span>.c <span class="k3">=</span><span class="k3">=</span> map<span class="k2">[</span>row<span class="k2">]</span><span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 40</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>tileinfo<span class="k2">[</span>ndx<span class="k2">]</span>.tile , x , y , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 42</span>         <span class="k2">}</span>
<span class="number"> 43</span>      <span class="k2">}</span>
<span class="number"> 44</span>      <span class="k3">+</span><span class="k3">+</span>i<span class="k2">;</span>
<span class="number"> 45</span>      x <span class="k3">+</span><span class="k3">=</span> TILEWIDTH<span class="k2">;</span>
<span class="number"> 46</span>   <span class="k2">}</span>
<span class="number"> 47</span>   <span class="k3">+</span><span class="k3">+</span>row<span class="k2">;</span>
<span class="number"> 48</span>   y <span class="k3">+</span><span class="k3">=</span> TILEHEIGHT<span class="k2">;</span>
<span class="number"> 49</span><span class="k2">}</span>
</div></div><p>

You have a serious need to learn how to use arrays and maps and textfiles. Your code would be hundreds of times shorter.</p><p>Even a simple std::map&lt;std::string , int&gt; would be useful for keeping track of inventory. You can simply use things like <span class="source-code">map<span class="k2">[</span><span class="s">"Item"</span><span class="k2">]</span><span class="k3">+</span><span class="k3">+</span></span> or <span class="source-code">map<span class="k2">[</span><span class="s">"Axes"</span><span class="k2">]</span><span class="k3">-</span><span class="k3">-</span></span>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 19 Aug 2014 11:09:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>A char in C is also an integer with a small range so if you cleverly lay out your tiles in a tile atlas, no conversion will be needed.</p><p>I looked at your source code and yes, you need to learn how to use structs and arrays. There are pleny of tutorial web sites or books on C that can help you get started but here a few untested ideas (in C, not C++) you could use and complete:</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="number">  2</span><span class="k1">struct</span> Item <span class="k2">{</span>
<span class="number">  3</span>  <span class="k1">int</span> number<span class="k2">;</span>
<span class="number">  4</span>  <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> name<span class="k2">;</span>
<span class="number">  5</span>  <span class="k1">int</span> type<span class="k2">;</span>
<span class="number">  6</span>  <span class="k1">int</span> effect<span class="k2">;</span>
<span class="number">  7</span>  <span class="k1">int</span> quality<span class="k2">;</span>
<span class="number">  8</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span><span class="k1">struct</span> Skill <span class="k2">{</span>
<span class="number"> 11</span>  <span class="k1">int</span> number<span class="k2">;</span>
<span class="number"> 12</span>  <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span> name<span class="k2">;</span>
<span class="number"> 13</span>  <span class="k1">int</span> type<span class="k2">;</span>
<span class="number"> 14</span>  <span class="k1">int</span> effect<span class="k2">;</span>
<span class="number"> 15</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 16</span>
<span class="number"> 17</span><span class="k1">enum</span> ItemType <span class="k2">{</span>
<span class="number"> 18</span>  ITEM_EQUIPMENT <span class="k3">=</span> <span class="n">1</span>,
<span class="number"> 19</span>  ITEM_USABLE    <span class="k3">=</span> <span class="n">2</span>,
<span class="number"> 20</span>  ITEM_MATERIAL  <span class="k3">=</span> <span class="n">4</span>,
<span class="number"> 21</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 22</span>
<span class="number"> 23</span><span class="k1">enum</span> SkillType <span class="k2">{</span>
<span class="number"> 24</span>  SKILL_COMBAT   <span class="k3">=</span> <span class="n">1</span>,
<span class="number"> 25</span>  SKILL_GATHERING<span class="k3">=</span> <span class="n">2</span>,
<span class="number"> 26</span>  SKILL_CRAFTING <span class="k3">=</span> <span class="n">4</span>,
<span class="number"> 27</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 28</span>
<span class="number"> 29</span><span class="k1">enum</span> Effect <span class="k2">{</span>
<span class="number"> 30</span>  NO_EFFECT      <span class="k3">=</span> <span class="n">1</span>,
<span class="number"> 31</span>  HEALING_EFFECT <span class="k3">=</span> <span class="n">2</span>,
<span class="number"> 32</span>  FIRE_EFFECT    <span class="k3">=</span> <span class="n">4</span>,
<span class="number"> 33</span>  ICE_EFFECT     <span class="k3">=</span> <span class="n">8</span>,
<span class="number"> 34</span>  SHOCK_EFFECT   <span class="k3">=</span> <span class="n">16</span>,
<span class="number"> 35</span>  DARK_EFFECT    <span class="k3">=</span> <span class="n">32</span>,
<span class="number"> 36</span>  LIGHT_EFFECT   <span class="k3">=</span> <span class="n">64</span>,
<span class="number"> 37</span>  MANA_EFFECT    <span class="k3">=</span> <span class="n">128</span>,
<span class="number"> 38</span>  COMBAT_EFFECT  <span class="k3">=</span> <span class="n">256</span>,
<span class="number"> 39</span>  MINING_EFFECT  <span class="k3">=</span> <span class="n">512</span>,
<span class="number"> 40</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 41</span>
<span class="number"> 42</span><span class="k1">enum</span> ItemNumber <span class="k2">{</span>
<span class="number"> 43</span>  ITEM_RUSTY_AXE, 
<span class="number"> 44</span>  ITEM_STEEL_AXE, 
<span class="number"> 45</span>  ITEM_METREAL_AXE, 
<span class="number"> 46</span>  ITEM_POTION, 
<span class="number"> 47</span>  ITEM_ELIXIR, 
<span class="number"> 48</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 49</span>
<span class="number"> 50</span><span class="k1">enum</span> SkillNumber <span class="k2">{</span>
<span class="number"> 51</span>  SKILL_AXES,
<span class="number"> 52</span>  SKILL_SWORDS,
<span class="number"> 53</span>  SKILL_MINING,
<span class="number"> 54</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 55</span>
<span class="number"> 56</span><span class="k1">struct</span> Item items<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number"> 57</span>  <span class="k2">{</span>ITEM_RUSTY_AXE  , <span class="s">"Rusty Axe"</span>   , ITEM_EQUIPMENT, COMBAT_EFFECT, <span class="n">5</span> <span class="k2">}</span>,
<span class="number"> 58</span>  <span class="k2">{</span>ITEM_STEEL_AXE  , <span class="s">"Steel Axe"</span>   , ITEM_EQUIPMENT, COMBAT_EFFECT, <span class="n">10</span> <span class="k2">}</span>,
<span class="number"> 59</span>  <span class="k2">{</span>ITEM_METREAL_AXE, <span class="s">"Methreal Axe"</span>, ITEM_EQUIPMENT, COMBAT_EFFECT, <span class="n">20</span> <span class="k2">}</span>,
<span class="number"> 60</span>  <span class="k2">{</span>ITEM_POTION     , <span class="s">"Potion"</span>      , ITEM_USABLE   , HEALING_EFFECT, <span class="n">5</span> <span class="k2">}</span>,
<span class="number"> 61</span>  <span class="k2">{</span>ITEM_ELIXIR     , <span class="s">"Elixir"</span>      , ITEM_USABLE   , HEALING_EFFECT, <span class="n">20</span> <span class="k2">}</span>,
<span class="number"> 62</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 63</span>
<span class="number"> 64</span><span class="k1">struct</span> Skill skills<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number"> 65</span>  <span class="k2">{</span>SKILL_AXES  , <span class="s">"Axe Skill"</span>       , SKILL_COMBAT   , COMBAT_EFFECT <span class="k2">}</span>,
<span class="number"> 66</span>  <span class="k2">{</span>SKILL_MINING, <span class="s">"Minging Skill"</span>   , SKILL_GATHERING, MINING_EFFECT <span class="k2">}</span>,
<span class="number"> 67</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 68</span>
<span class="number"> 69</span><span class="k1">enum</span> Constants <span class="k2">{</span>
<span class="number"> 70</span>  INVENTORY_MAX <span class="k3">=</span> <span class="n">30</span>,
<span class="number"> 71</span>  BEING_SKILL_MAX <span class="k3">=</span> <span class="n">30</span>,
<span class="number"> 72</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 73</span>
<span class="number"> 74</span>
<span class="number"> 75</span><span class="k1">struct</span> InventoryItem <span class="k2">{</span>
<span class="number"> 76</span>  <span class="k1">int</span> item_number<span class="k2">;</span>
<span class="number"> 77</span>  <span class="k1">int</span> amount<span class="k2">;</span>
<span class="number"> 78</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 79</span>
<span class="number"> 80</span><span class="k1">struct</span> BeingSkill <span class="k2">{</span>
<span class="number"> 81</span>  <span class="k1">int</span> skill_number<span class="k2">;</span>
<span class="number"> 82</span>  <span class="k1">int</span> level<span class="k2">;</span>
<span class="number"> 83</span>  <span class="k1">int</span> experience<span class="k2">;</span>
<span class="number"> 84</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 85</span>
<span class="number"> 86</span>
<span class="number"> 87</span><span class="k1">struct</span> Being <span class="k2">{</span>
<span class="number"> 88</span>  <span class="k1">int</span> hp, hpmax<span class="k2">;</span>  
<span class="number"> 89</span>  <span class="k1">int</span> mp, mpmax<span class="k2">;</span>
<span class="number"> 90</span>  <span class="k1">int</span> money<span class="k2">;</span>
<span class="number"> 91</span>  <span class="k1">struct</span> InventoryItem<span class="k2">[</span>INVENTORY_MAX<span class="k2">]</span> items<span class="k2">;</span> 
<span class="number"> 92</span>  <span class="k1">struct</span> BeingSkill<span class="k2">[</span>BEING_SKILL_MAX<span class="k2">]</span> skills<span class="k2">;</span>
<span class="number"> 93</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 94</span>
<span class="number"> 95</span><span class="k1">struct</span> Being player<span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (beoran)</author>
		<pubDate>Tue, 19 Aug 2014 11:30:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Edgar, I don&#39;t think you can set the bitmaps this way because it would call <span class="source-code"><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="k2">)</span></span> too early.<br />A workaround is to add the file names in the struct array, and keep the pointer to bitmap at NULL initially. After allegro initialization (and graphic mode selection, I think) you can loop on the array:<br /> </p><div class="source-code snippet"><div class="inner"><pre><span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="k1">sizeof</span><span class="k2">(</span>tileinfo<span class="k2">)</span><span class="k3">/</span><span class="k1">sizeof</span><span class="k2">(</span>tileinfo<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
   tileinfo<span class="k2">[</span>i<span class="k2">]</span>.tile <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>tileinfo<span class="k2">[</span>i<span class="k2">]</span>.filename<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Audric)</author>
		<pubDate>Tue, 19 Aug 2014 13:34:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>beoran i at least sort of know what structs are, but when it comes to enum i am very lost and have no idea how to use those.</p><p>one of the biggest things that i need help with for structs is how once i have created all the item structures and what not do i then make the program read every single struct without me having to specifically write them all out the way i currently have it.</p><p>and also another thing i will add is for the tiles i would prefer to just have all the tiles in one .png this is what i made a good while back. i started working with allegro about 2 months ago but got very frustrated because i broke off more then i knew how to do in c++ let alone allegro. but this is the tile sheet i made. it was a very rough drawing and i will likely redraw it for the specific need of this current game.</p><p>one last thing too, Edgar Reynaldo, i would also prefer to keep my maps as a 2d array. and i also know how to use text files... but i am also lazy. and just have not gotten around to moving all of the maps into text files. i mean there are 70 of them. haha that is going to take forever. When i do finally move the map to a text file i will have to make all the blank spaces ~ right? but that wont matter when i do finally work out the tiles.</p><p>if i do something like this. i dont see how to tell what item the character has. if the player has a sword is there a way of doing something like get item.id and then it will run through all the item1.id item2.id and so on and see what matches and then tell you that if item.id = item1.id then you have a sword.</p><p>#include &lt;iostream&gt;</p><p>using namespace std;</p><p>char end[5];</p><p>struct item<br />{<br />    string name;<br />    int id;<br />};</p><p>int main()<br />{<br />    item item1;<br />    item item2;<br />    <br />    item1.name = &quot;sword&quot;;<br />    item2.name = &quot;ax&quot;;<br />    item1.id = 1;<br />    item2.id = 2;<br />    <br />    cout &lt;&lt; item1.name &lt;&lt; &quot; &quot; &lt;&lt; item1.id &lt;&lt; endl &lt;&lt; endl &lt;&lt; item2.name &lt;&lt; &quot; &quot; &lt;&lt; item2.id;<br />    <br />    cin &gt;&gt; end[5];<br />    return 0;<br />}
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Antone333)</author>
		<pubDate>Tue, 19 Aug 2014 22:12:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>In C, an enum is just a way to define several integer constants. Look it up, it&#39;s <br />worth learning!</p><p>Once you use arrays of structs as I suggested, you can start making loops an lookups to do things, in stead of hard-coding everything. It&#39;s hard to explain in short, I suggest you learn more about the C language to better understand how this would work.</p><p>It&#39;s certainly possible to use a single bitmap for the tiles (this is called a &quot;tile atlas&quot;). You need to use either sub-bitmaps or Alegro&#39;s more complex bitmap drawing functions that select the part of the single bitmap you want to display.</p><p>As for seeing which item a player has, withc what I suggested, you would look up the item&#39;s id in the item array, and then you know which name to display, which effects it has, etc. What an item <i>is</i> and which items the player <i>has</i> are two different things and should be stored in different variables.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (beoran)</author>
		<pubDate>Tue, 19 Aug 2014 22:48:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>so it would be something more or less like</p><p>the item is 1<br />item is sword</p><p>the player has 1</p><p>if item is = item has<br />player has sword<br />that way they are separate?</p><p>Does anyone know a good book that i can buy to help me? might as well go with something based on game programming as that is what i am working on right now. but even if not. just a good book in general for learning c++ would be nice.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Antone333)</author>
		<pubDate>Tue, 19 Aug 2014 22:58:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Audric has a good point. I&#39;m just used to C++ where you can declare anything you want anywhere. <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /> That would be a better method.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/614571/1004394#target">Antone333</a> said:</div><div class="quote"><p>
one last thing too, Edgar Reynaldo, i would also prefer to keep my maps as a 2d array. and i also know how to use text files... but i am also lazy. and just have not gotten around to moving all of the maps into text files. i mean there are 70 of them. haha that is going to take forever. When i do finally move the map to a text file i will have to make all the blank spaces ~ right? but that wont matter when i do finally work out the tiles.
</p></div></div><p>
That&#39;s the thing, they are a 2D array. map[row][column] gives you the char at column,row (x,y). You just index it by row first. You can make a 2D array of char like this :
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">char</span> map1<span class="k2">[</span><span class="k2">]</span><span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
   <span class="k2">{</span><span class="s">'#'</span>,<span class="s">'#'</span>,<span class="s">'#'</span><span class="k2">}</span>,
   <span class="k2">{</span><span class="s">'#'</span>,<span class="s">'W'</span>,<span class="s">'#'</span><span class="k2">}</span>,
   <span class="k2">{</span><span class="s">'#'</span>,<span class="s">'+'</span>,<span class="s">'#'</span><span class="k2">}</span>,
   <span class="k2">{</span><span class="s">'#'</span>,<span class="s">'#'</span>,<span class="s">'#'</span><span class="k2">}</span>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>
But notice doing it this way you have to enclose everything in single quotes &#39;&#39;. Because they are char literals. A literal is a predefined string or data.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 19 Aug 2014 23:04:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>so would it be easier the way i have my maps set up just to have individual files for each tile?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Antone333)</author>
		<pubDate>Tue, 19 Aug 2014 23:09:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can just change your TILEINFO struct to accept x,y,w,h members to store the location of the tile on your atlas.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 19 Aug 2014 23:35:47 +0000</pubDate>
	</item>
</rss>
