<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>problem loading config file again</title>
		<link>http://www.allegro.cc/forums/view/615449</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 16 Jun 2015 19:08:48 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>With regards to this post :</p><p><a href="https://www.allegro.cc/forums/thread/615390">https://www.allegro.cc/forums/thread/615390</a></p><p>I don&#39;t know why now but for some reason I thought I&#39;d solved the issue.</p><p>I&#39;ve recently used the project mentioned in the post as a template for another project and have come up with the same problem.</p><p>Here&#39;s my directory structure :</p><p><span class="remote-thumbnail"><span class="json">{"name":"609476","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/1\/1\/11b909a366c48e6565e096f63be09d60.png","w":861,"h":465,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/1\/1\/11b909a366c48e6565e096f63be09d60"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/1/1/11b909a366c48e6565e096f63be09d60-240.jpg" alt="609476" width="240" height="129" /></span></p><p><span class="remote-thumbnail"><span class="json">{"name":"609477","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/1\/91b05884ab04f5868c8b2d0827e19fc2.png","w":739,"h":179,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/1\/91b05884ab04f5868c8b2d0827e19fc2"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/9/1/91b05884ab04f5868c8b2d0827e19fc2-240.jpg" alt="609477" width="240" height="58" /></span></p><p>Here&#39;s the code for loading the .cfg file.</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">class</span> ConfigManagerClass
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>   
<span class="number">  4</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_CONFIG"><span class="a">ALLEGRO_CONFIG</span></a> <span class="k3">*</span>cfg<span class="k2">;</span>
<span class="number">  5</span>   
<span class="number">  6</span>   <span class="k1">int</span> init_okay_flag<span class="k2">;</span>
<span class="number">  7</span>   
<span class="number">  8</span>   public:
<span class="number">  9</span>
<span class="number"> 10</span>   ConfigManagerClass<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span> cfg<span class="k2">(</span>NULL<span class="k2">)</span>
<span class="number"> 11</span>   <span class="k2">{</span>
<span class="number"> 12</span>      
<span class="number"> 13</span>
<span class="number"> 14</span>   <span class="k2">}</span>
<span class="number"> 15</span>   
<span class="number"> 16</span>   <span class="k1">void</span> load_config_file<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>filename, Rabbit_Log<span class="k3">&amp;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">)</span>
<span class="number"> 17</span>   <span class="k2">{</span>
<span class="number"> 18</span>      cfg <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_config_file"><span class="a">al_load_config_file</span></a><span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>     
<span class="number"> 20</span>    log.write_message_number<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>    log.write_string<span class="k2">(</span><span class="s">"About to load configuration file ("</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>    log.write_string<span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>    log.write_string<span class="k2">(</span><span class="s">")."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>    log.end_message<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>    
<span class="number"> 26</span>    log.write_message_number<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>    <span class="k1">if</span><span class="k2">(</span> cfg <span class="k3">=</span><span class="k3">=</span> NULL <span class="k2">)</span>
<span class="number"> 28</span>    <span class="k2">{</span>
<span class="number"> 29</span>     log.write_string<span class="k2">(</span><span class="s">"Failed to load it."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>     init_okay_flag <span class="k3">=</span> RED_FLAG<span class="k2">;</span>
<span class="number"> 31</span>     
<span class="number"> 32</span>    <span class="k2">}</span>
<span class="number"> 33</span>      <span class="k1">else</span> 
<span class="number"> 34</span>    <span class="k2">{</span>
<span class="number"> 35</span>     log.write_string<span class="k2">(</span><span class="s">"Loaded it successfully."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>     init_okay_flag <span class="k3">=</span> GREEN_FLAG<span class="k2">;</span>
<span class="number"> 37</span>    
<span class="number"> 38</span>    <span class="k2">}</span>
<span class="number"> 39</span>    log.end_message<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>     
<span class="number"> 41</span>   <span class="k2">}</span>
<span class="number"> 42</span>   
<span class="number"> 43</span>   <span class="k1">int</span> get_integer<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>, <span class="k1">int</span> <span class="k3">*</span>integer_to_get<span class="k2">)</span>
<span class="number"> 44</span>   <span class="k2">{</span>
<span class="number"> 45</span>      <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>string <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 46</span>    
<span class="number"> 47</span>      string <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_config_value"><span class="a">al_get_config_value</span></a><span class="k2">(</span> cfg, NULL, <span class="s">"p1"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 48</span>    
<span class="number"> 49</span>    <span class="k1">if</span><span class="k2">(</span>string <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 50</span>    <span class="k2">{</span>
<span class="number"> 51</span>         <span class="k1">return</span> ERROR_1<span class="k2">;</span>
<span class="number"> 52</span>      <span class="k2">}</span>
<span class="number"> 53</span>      <span class="k1">else</span>
<span class="number"> 54</span>    <span class="k2">{</span>
<span class="number"> 55</span>       <span class="k1">return</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_54.html" target="_blank">atoi</a><span class="k2">(</span>string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 56</span>    <span class="k2">}</span>
<span class="number"> 57</span>    
<span class="number"> 58</span>   <span class="k2">}</span>
<span class="number"> 59</span>   
<span class="number"> 60</span>   
<span class="number"> 61</span>   <span class="k1">int</span> init_okay<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 62</span>   <span class="k2">{</span>
<span class="number"> 63</span>     <span class="k1">return</span> init_okay_flag<span class="k2">;</span>
<span class="number"> 64</span>   <span class="k2">}</span>
<span class="number"> 65</span>   
<span class="number"> 66</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>


Here&#39;s where the loading function is called from :</p><div class="source-code snippet"><div class="inner"><pre>   <span class="c">/***************** End of Section *************************************/</span>
   
   <span class="c">/**********************************************************************/</span>
   <span class="c">/**************** Section : load configuration file. ******************/</span>
   <span class="c">/**********************************************************************/</span>
   
   config_manager.load_config_file<span class="k2">(</span><span class="s">"configuration/no_ap_3_configuration_file.cfg"</span>, <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">)</span><span class="k2">;</span>
   
   <span class="k1">if</span><span class="k2">(</span>config_manager.init_okay<span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> GREEN_FLAG<span class="k2">)</span>
   <span class="k2">{</span>
     <span class="c">/* add clear up code */</span>
     <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
   <span class="k2">}</span>
</pre></div></div><p>

Here&#39;s the log file :</p><p>MESSAGE :    0    :  Log file opened.<br />MESSAGE :    1    :  Initialised Allegro System Successfully.<br />MESSAGE :    2    :  Initialised true type font addon successfully.<br />MESSAGE :    3    :  End of InitialisationClass initialisation.<br />MESSAGE :    4    :  Initialising Primes_Manager class.<br />MESSAGE :    5    :  Initialised PhysFS successfully.<br />MESSAGE :    6    :  Initialising Display.<br />MESSAGE :    7    :  Unable to load font SIRCLIVE.ttf.<br />MESSAGE :    8    :  Successfully initialised the Display.<br />MESSAGE :    9    :  About to load configuration file (configuration/no_ap_3_configuration_file.cfg).<br />MESSAGE :   10    :  Failed to load it.</p><p>I hope someone can help <img src="http://www.allegro.cc/forums/smileys/kiss.gif" alt=":-*" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Sun, 14 Jun 2015 19:18:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>One thing to try is to load the full (not relative) path to your config file:<br />c:\no_ap_3\configuration\no_ap_3_configuration_file.cfg</p><p>If this works, it&#39;s probably that the current working directory isn&#39;t as you expect it to be (the program&#39;s directory) or it&#39;s having problems using the forward slashes as the directory separator instead of backslashes.  I thought Windows/Allegro handled the difference between forward and backward slashes nicely, but you&#39;d still want to rule it out.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (raynebc)</author>
		<pubDate>Sun, 14 Jun 2015 23:46:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve tried both of those but the file still doesn&#39;t load.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Mon, 15 Jun 2015 00:31:06 +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/615449/1013971#target">raynebc</a> said:</div><div class="quote"><p>
One thing to try is to load the full (not relative) path to your config file:<br />c:\no_ap_3\configuration\no_ap_3_configuration_file.cfg
</p></div></div><p>
If he used that path directly there would be a problem, since backslash is the escape character. Try using forward slashes and the full path. If that doesn&#39;t work, post your configuration file so others can try it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 15 Jun 2015 02:08:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>He could use \\ for each backslash, it&#39;s not much of an issue.  Allegro 4 had a put_backslash() function to append the appropriate folder separator for whatever platform was running, I don&#39;t know if A5 has an equivalent function.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (raynebc)</author>
		<pubDate>Mon, 15 Jun 2015 03:01:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Muchas gracias, amigos.</p><p>Changed the code to this :-</p><div class="source-code snippet"><div class="inner"><pre>   <span class="c">/***************** End of Section *************************************/</span>
   
   <span class="c">/**********************************************************************/</span>
   <span class="c">/**************** Section : load configuration file. ******************/</span>
   <span class="c">/**********************************************************************/</span>
   
   config_manager.load_config_file<span class="k2">(</span><span class="s">"configuration\\no_ap_3_configuration_file.cfg"</span>, <a href="http://www.delorie.com/djgpp/doc/libc/libc_542.html" target="_blank">log</a><span class="k2">)</span><span class="k2">;</span>
   
   <span class="k1">if</span><span class="k2">(</span>config_manager.init_okay<span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> GREEN_FLAG<span class="k2">)</span>
   <span class="k2">{</span>
     <span class="c">/* add clear up code */</span>
     <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
   <span class="k2">}</span>
</pre></div></div><p>


New output file :-</p><p>MESSAGE :    0    :  Log file opened.<br />MESSAGE :    1    :  Initialised Allegro System Successfully.<br />MESSAGE :    2    :  Initialised true type font addon successfully.<br />MESSAGE :    3    :  End of InitialisationClass initialisation.<br />MESSAGE :    4    :  Initialising Primes_Manager class.<br />MESSAGE :    5    :  Initialised PhysFS successfully.<br />MESSAGE :    6    :  Initialising Display.<br />MESSAGE :    7    :  Unable to load font SIRCLIVE.ttf.<br />MESSAGE :    8    :  Successfully initialised the Display.<br />Failed to load it 1.MESSAGE :    9    :  About to load configuration file (configuration</p><p>\no_ap_3_configuration_file.cfg).<br />MESSAGE :   10    :  Failed to load </p><p>/* config file attached */</p><p>I could upload the whole project if need be.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Mon, 15 Jun 2015 04:11:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I can load the config file you uploaded without problems. You must have a problem with the current working directory. You can check the cwd with this :</p><p><span class="source-code"><a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Working directory is '%s'\n"</span> , <a href="http://www.allegro.cc/manual/al_get_current_directory"><span class="a">al_get_current_directory</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></span></p><p>And you can set the cwd to the directory your exe is in by using this :
</p><div class="source-code snippet"><div class="inner"><pre>  ALLEGRO_PATH<span class="k3">*</span> exepath <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_standard_path"><span class="a">al_get_standard_path</span></a><span class="k2">(</span>ALLEGRO_EXENAME_PATH<span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/al_set_path_filename"><span class="a">al_set_path_filename</span></a><span class="k2">(</span>exepath , NULL<span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/al_change_directory"><span class="a">al_change_directory</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a><span class="k2">(</span>exepath , ALLEGRO_NATIVE_PATH_SEP<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/al_destroy_path"><span class="a">al_destroy_path</span></a><span class="k2">(</span>exepath<span class="k2">)</span><span class="k2">;</span>

<span class="c">//   ALLEGRO_CONFIG* config = al_load_config_file("test.cfg");</span>
<span class="c">//   printf("%s config file\n" , config?"Loaded ":"Failed to load ");</span>
</pre></div></div><p>

Just replace test.cfg with your cfg file.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 15 Jun 2015 04:48:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks Edgar.</p><p>I&#39;ve followed all the advice and still it won&#39;t load. Shall I zip the project<br />and post it?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Mon, 15 Jun 2015 13:23:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Make a copy of your config file named test.cfg and try this first. Run your executable from any directory and put the test.cfg file next to it.</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="p">#include "allegro5/allegro.h"</span>
<span class="number">  3</span><span class="p">#include &lt;cstdio&gt;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  6</span><span class="k2">{</span>
<span class="number">  7</span>   <a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span>   ALLEGRO_PATH<span class="k3">*</span> exepath <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_standard_path"><span class="a">al_get_standard_path</span></a><span class="k2">(</span>ALLEGRO_EXENAME_PATH<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>   <a href="http://www.allegro.cc/manual/al_set_path_filename"><span class="a">al_set_path_filename</span></a><span class="k2">(</span>exepath , NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>   <a href="http://www.allegro.cc/manual/al_change_directory"><span class="a">al_change_directory</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a><span class="k2">(</span>exepath , ALLEGRO_NATIVE_PATH_SEP<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>   <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Changing to directory '%s'\n"</span> , <a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a><span class="k2">(</span>exepath , ALLEGRO_NATIVE_PATH_SEP<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>   <a href="http://www.allegro.cc/manual/al_destroy_path"><span class="a">al_destroy_path</span></a><span class="k2">(</span>exepath<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_CONFIG"><span class="a">ALLEGRO_CONFIG</span></a><span class="k3">*</span> config <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_config_file"><span class="a">al_load_config_file</span></a><span class="k2">(</span><span class="s">"test.cfg"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>   <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"%s config file\n"</span> , config?<span class="s">"Loaded "</span><span class="k2">:</span><span class="s">"Failed to load "</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>
<span class="number"> 18</span>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 19</span><span class="k2">}</span>
</div></div><p>

If that doesn&#39;t work by itself, then there is something wrong with your version of allegro. If it does work, there is something wrong with the way you are calling al_load_config_file or your cwd is wrong.</p><p>Post the output of the code above.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 15 Jun 2015 23:42:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>He is using physfs, maybe he isn&#39;t setting up the location the config file is in with physfs?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Tue, 16 Jun 2015 00:03:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m going to try tomasu&#39;s suggestion (hoping that someone will respond to this post so that I can keep y&#39;all up to date).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Tue, 16 Jun 2015 00:41:32 +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/615449/1013998#target">Thomas Fjellstrom</a> said:</div><div class="quote"><p>
He is using physfs, maybe he isn&#39;t setting up the location the config file is in with physfs? 
</p></div></div><p>
Oh, okay. Didn&#39;t see that. That could definitely affect the way the config file is being loaded.</p><p>William, please show us where you are setting up PhysFS and its search directories.</p><p>Or something else you can try is resetting the file interface before loading your config file. It would defeat the purpose of using physfs, but it should tell you if the basic config file loading is working or not.</p><p>Try calling <span class="source-code"><a href="http://www.allegro.cc/manual/al_set_standard_file_interface"><span class="a">al_set_standard_file_interface</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span> before loading the config file.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 16 Jun 2015 19:08:48 +0000</pubDate>
	</item>
</rss>
