<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Problem creating a bitmap, and a class</title>
		<link>http://www.allegro.cc/forums/view/591065</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 19 Apr 2007 00:28:09 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>data <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="k3">!</span><span class="k3">*</span><span class="k3">*</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bg <span class="k3">=</span> NULL<span class="k2">;</span>
    
<span class="c">//a function to initalise some resources</span>
<span class="k1">void</span> init_data<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
    data <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"bboy.dat"</span><span class="k2">)</span><span class="k2">;</span>
    bg <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>bg<span class="k2">]</span>.dat<span class="k2">;</span> 
<span class="k2">}</span>
</pre></div></div><p>
The line with the !**! in front of it gives the following error:<br />expected unqualified-id before numeric constant<br />expected init-declarator before numeric constant<br />expected `,&#39; or `;&#39; before numeric constant</p><p>Same with this code:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">//the ball class</span></td></tr><tr><td class="number">2</td><td><span class="k1">class</span> ball</td></tr><tr><td class="number">3</td><td><span class="k2">{</span></td></tr><tr><td class="number">4</td><td>      public:</td></tr><tr><td class="number">5</td><td>             <span class="k1">int</span> ballX<span class="k2">;</span></td></tr><tr><td class="number">6</td><td>             <span class="k1">int</span> ballY<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>             <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>ballImage<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>      public:</td></tr><tr><td class="number">9</td><td>             <span class="k1">void</span> init<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>             <span class="k1">void</span> drawBall<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>method_buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>&#160;</td></tr><tr><td class="number">13</td><td><span class="k1">void</span> ball::init<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span></td></tr><tr><td class="number">14</td><td><span class="k2">{</span></td></tr><tr><td class="number">15</td><td>     ballX <span class="k3">=</span> x<span class="k2">;</span></td></tr><tr><td class="number">16</td><td>     ballY <span class="k3">=</span> y<span class="k2">;</span></td></tr><tr><td class="number">17</td><td>     ballImage <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>ball<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">18</td><td><span class="k2">}</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

Any ideas on the problem?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Hoey)</author>
		<pubDate>Wed, 18 Apr 2007 17:25:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Post the whole file. Probably some syntactical error earlier.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jonatan Hedborg)</author>
		<pubDate>Wed, 18 Apr 2007 17:45:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
<span class="source-code">ballImage <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>ball<span class="k2">]</span>.dat<span class="k2">;</span></span></p><p>... and you also have a class named &quot;ball&quot;. Name conflict. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (X-G)</author>
		<pubDate>Wed, 18 Apr 2007 17:47:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why would there be a conflict if I&#39;m loading it form a data file, though?</p><p>Here&#39;s the whole file:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">//this is to use allegro</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">3</td><td><span class="p">#include ".\bboy_head.h"</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="k1">volatile</span> <span class="k1">long</span> speed_counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> <span class="c">// A long integer which will store the value of the</span></td></tr><tr><td class="number">6</td><td>                                 <span class="c">// speed counter.</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="k1">void</span> increment_speed_counter<span class="k2">(</span><span class="k2">)</span> <span class="c">// A function to increment the speed counter</span></td></tr><tr><td class="number">9</td><td><span class="k2">{</span></td></tr><tr><td class="number">10</td><td>  speed_counter<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span> <span class="c">// This will just increment the speed counter by one. :)</span></td></tr><tr><td class="number">11</td><td><span class="k2">}</span></td></tr><tr><td class="number">12</td><td><a href="http://www.allegro.cc/manual/END_OF_FUNCTION" target="_blank"><span class="a">END_OF_FUNCTION</span></a><span class="k2">(</span>increment_speed_counter<span class="k2">)</span><span class="k2">;</span> <span class="c">// Make sure you tell it that it's the end of the</span></td></tr><tr><td class="number">13</td><td>                                          <span class="c">// function</span></td></tr><tr><td class="number">14</td><td><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>data <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">15</td><td><span class="c">//BITMAP *bg = NULL; </span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td><span class="c">//a function to initalise some resources</span></td></tr><tr><td class="number">18</td><td><span class="k1">void</span> init_data<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">19</td><td><span class="k2">{</span></td></tr><tr><td class="number">20</td><td>    data <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"bboy.dat"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>    <span class="c">//bg = (BITMAP*)data[bg].dat;</span></td></tr><tr><td class="number">22</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>  </td></tr><tr><td class="number">24</td><td><span class="c">//the player class</span></td></tr><tr><td class="number">25</td><td><span class="k1">class</span> player</td></tr><tr><td class="number">26</td><td><span class="k2">{</span></td></tr><tr><td class="number">27</td><td>    <span class="c">//to store the image and the cooards</span></td></tr><tr><td class="number">28</td><td>    public:</td></tr><tr><td class="number">29</td><td>        <span class="k1">int</span> playerX<span class="k2">;</span></td></tr><tr><td class="number">30</td><td>        <span class="k1">int</span> playerY<span class="k2">;</span></td></tr><tr><td class="number">31</td><td>        <span class="k1">int</span> dir<span class="k2">;</span> <span class="c">//1 = right, 2 = left</span></td></tr><tr><td class="number">32</td><td>        <span class="k1">int</span> state<span class="k2">;</span> <span class="c">//0 = idle, 1 = run, 2 = jump</span></td></tr><tr><td class="number">33</td><td>        <span class="k1">int</span> constantY<span class="k2">;</span></td></tr><tr><td class="number">34</td><td>        <span class="k1">int</span> velocity<span class="k2">;</span></td></tr><tr><td class="number">35</td><td>        <span class="k1">bool</span> maxJump<span class="k2">;</span></td></tr><tr><td class="number">36</td><td>        <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player_image<span class="k2">;</span></td></tr><tr><td class="number">37</td><td>        <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player_idle_r<span class="k2">;</span></td></tr><tr><td class="number">38</td><td>        <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player_run_r<span class="k2">;</span></td></tr><tr><td class="number">39</td><td>        <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player_jump_r<span class="k2">;</span></td></tr><tr><td class="number">40</td><td>        </td></tr><tr><td class="number">41</td><td>        <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player_idle_l<span class="k2">;</span></td></tr><tr><td class="number">42</td><td>        <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player_run_l<span class="k2">;</span></td></tr><tr><td class="number">43</td><td>        <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player_jump_l<span class="k2">;</span></td></tr><tr><td class="number">44</td><td>        </td></tr><tr><td class="number">45</td><td>    <span class="c">//a few methods we'll be needing</span></td></tr><tr><td class="number">46</td><td>    public:</td></tr><tr><td class="number">47</td><td>        <span class="k1">void</span> move_left<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//moves the player left</span></td></tr><tr><td class="number">48</td><td>        <span class="k1">void</span> move_right<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//moves the player right</span></td></tr><tr><td class="number">49</td><td>        <span class="k1">void</span> draw_player<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>method_buffer<span class="k2">)</span><span class="k2">;</span> <span class="c">//just takes in a buffer that th epalyer is drawn to</span></td></tr><tr><td class="number">50</td><td>        <span class="k1">void</span> init<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span><span class="k2">;</span> <span class="c">//initilises the player values  </span></td></tr><tr><td class="number">51</td><td>        <span class="c">//void throwBall(int x, int y, ball temp);</span></td></tr><tr><td class="number">52</td><td>        <span class="k1">void</span> jump<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>        <span class="c">//void throwBall(int x, int y, ball temp);</span></td></tr><tr><td class="number">54</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td>&#160;</td></tr><tr><td class="number">56</td><td><span class="k1">void</span> player::init<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span></td></tr><tr><td class="number">57</td><td><span class="k2">{</span></td></tr><tr><td class="number">58</td><td>    playerX <span class="k3">=</span> x<span class="k2">;</span></td></tr><tr><td class="number">59</td><td>    playerY <span class="k3">=</span> y<span class="k2">;</span></td></tr><tr><td class="number">60</td><td>    constantY <span class="k3">=</span> playerY<span class="k2">;</span></td></tr><tr><td class="number">61</td><td>    velocity <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">62</td><td>    maxJump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td>    player_idle_r <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>idle_r<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">64</td><td>    player_run_r <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>run_r<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">65</td><td>    player_jump_r <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>jump_r<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">66</td><td>    </td></tr><tr><td class="number">67</td><td>    player_idle_l <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>idle_l<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">68</td><td>    player_run_l <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>run_l<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">69</td><td>    player_jump_l <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>jump_l<span class="k2">]</span>.dat<span class="k2">;</span></td></tr><tr><td class="number">70</td><td>    </td></tr><tr><td class="number">71</td><td>    dir <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>    state <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>    </td></tr><tr><td class="number">74</td><td>    player_image <span class="k3">=</span> player_idle_r<span class="k2">;</span></td></tr><tr><td class="number">75</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">76</td><td>&#160;</td></tr><tr><td class="number">77</td><td><span class="k1">void</span> player::draw_player<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>method_buffer<span class="k2">)</span></td></tr><tr><td class="number">78</td><td><span class="k2">{</span></td></tr><tr><td class="number">79</td><td>     <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">80</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">81</td><td>            <span class="c">//direction is right, so we'll be using the right images</span></td></tr><tr><td class="number">82</td><td>            <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">83</td><td>            <span class="k2">{</span></td></tr><tr><td class="number">84</td><td>                  player_image <span class="k3">=</span> player_idle_r<span class="k2">;</span></td></tr><tr><td class="number">85</td><td>            <span class="k2">}</span> </td></tr><tr><td class="number">86</td><td>            <span class="k1">else</span></td></tr><tr><td class="number">87</td><td>            <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">88</td><td>            <span class="k2">{</span></td></tr><tr><td class="number">89</td><td>                     player_image <span class="k3">=</span> player_run_r<span class="k2">;</span></td></tr><tr><td class="number">90</td><td>            <span class="k2">}</span></td></tr><tr><td class="number">91</td><td>            <span class="k1">else</span></td></tr><tr><td class="number">92</td><td>            <span class="k2">{</span></td></tr><tr><td class="number">93</td><td>                player_image <span class="k3">=</span> player_jump_r<span class="k2">;</span></td></tr><tr><td class="number">94</td><td>            <span class="k2">}</span></td></tr><tr><td class="number">95</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">96</td><td>     <span class="k1">else</span></td></tr><tr><td class="number">97</td><td>     <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span></td></tr><tr><td class="number">98</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">99</td><td>            <span class="c">//direction is left, so we'll be using the left images</span></td></tr><tr><td class="number">100</td><td>            <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">101</td><td>            <span class="k2">{</span></td></tr><tr><td class="number">102</td><td>                  player_image <span class="k3">=</span> player_idle_l<span class="k2">;</span></td></tr><tr><td class="number">103</td><td>            <span class="k2">}</span> </td></tr><tr><td class="number">104</td><td>            <span class="k1">else</span></td></tr><tr><td class="number">105</td><td>            <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">106</td><td>            <span class="k2">{</span></td></tr><tr><td class="number">107</td><td>                     player_image <span class="k3">=</span> player_run_l<span class="k2">;</span></td></tr><tr><td class="number">108</td><td>            <span class="k2">}</span></td></tr><tr><td class="number">109</td><td>            <span class="k1">else</span></td></tr><tr><td class="number">110</td><td>            <span class="k2">{</span></td></tr><tr><td class="number">111</td><td>                player_image <span class="k3">=</span> player_jump_l<span class="k2">;</span></td></tr><tr><td class="number">112</td><td>            <span class="k2">}</span></td></tr><tr><td class="number">113</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">114</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>method_buffer, player_image, playerX, playerY<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">115</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">116</td><td>&#160;</td></tr><tr><td class="number">117</td><td><span class="k1">void</span> player::move_left<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">118</td><td><span class="k2">{</span></td></tr><tr><td class="number">119</td><td>    playerX--<span class="k2">;</span></td></tr><tr><td class="number">120</td><td>    dir <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">121</td><td>    state <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">122</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">123</td><td>&#160;</td></tr><tr><td class="number">124</td><td><span class="k1">void</span> player::move_right<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">125</td><td><span class="k2">{</span></td></tr><tr><td class="number">126</td><td>    playerX<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">127</td><td>    dir <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">128</td><td>    state <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">129</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">130</td><td>&#160;</td></tr><tr><td class="number">131</td><td><span class="k1">void</span> player::jump<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">132</td><td><span class="k2">{</span></td></tr><tr><td class="number">133</td><td>     state <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">134</td><td>     <span class="k1">if</span><span class="k2">(</span>maxJump <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span></td></tr><tr><td class="number">135</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">136</td><td>        playerY--<span class="k2">;</span></td></tr><tr><td class="number">137</td><td>            </td></tr><tr><td class="number">138</td><td>        <span class="k1">if</span><span class="k2">(</span>playerY <span class="k3">&lt;</span><span class="k3">=</span> constantY <span class="k3">-</span> <span class="n">40</span><span class="k2">)</span></td></tr><tr><td class="number">139</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">140</td><td>            maxJump <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">141</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">142</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">143</td><td>    <span class="k1">else</span></td></tr><tr><td class="number">144</td><td>    <span class="k1">if</span><span class="k2">(</span>maxJump <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span></td></tr><tr><td class="number">145</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">146</td><td>        playerY<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">147</td><td>        </td></tr><tr><td class="number">148</td><td>        <span class="k1">if</span><span class="k2">(</span>playerY <span class="k3">&gt;</span><span class="k3">=</span> constantY<span class="k2">)</span></td></tr><tr><td class="number">149</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">150</td><td>            maxJump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">151</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">152</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">153</td><td>    </td></tr><tr><td class="number">154</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">155</td><td>     </td></tr><tr><td class="number">156</td><td><span class="c">/*</span></td></tr><tr><td class="number">157</td><td><span class="c">void player::throwBall(int x, int y, ball temp)</span></td></tr><tr><td class="number">158</td><td><span class="c">{</span></td></tr><tr><td class="number">159</td><td><span class="c">     </span></td></tr><tr><td class="number">160</td><td><span class="c">};</span></td></tr><tr><td class="number">161</td><td><span class="c"></span></td></tr><tr><td class="number">162</td><td><span class="c">//the ball class</span></td></tr><tr><td class="number">163</td><td><span class="c">class ball</span></td></tr><tr><td class="number">164</td><td><span class="c">{</span></td></tr><tr><td class="number">165</td><td><span class="c">      public:</span></td></tr><tr><td class="number">166</td><td><span class="c">             int ballX;</span></td></tr><tr><td class="number">167</td><td><span class="c">             int ballY;</span></td></tr><tr><td class="number">168</td><td><span class="c">             BITMAP *ballImage;</span></td></tr><tr><td class="number">169</td><td><span class="c">      public:</span></td></tr><tr><td class="number">170</td><td><span class="c">             void init(int x, int y);</span></td></tr><tr><td class="number">171</td><td><span class="c">             void drawBall(BITMAP *method_buffer);</span></td></tr><tr><td class="number">172</td><td><span class="c">};</span></td></tr><tr><td class="number">173</td><td><span class="c"></span></td></tr><tr><td class="number">174</td><td><span class="c">void ball::init(int x, int y)</span></td></tr><tr><td class="number">175</td><td><span class="c">{</span></td></tr><tr><td class="number">176</td><td><span class="c">     ballX = x;</span></td></tr><tr><td class="number">177</td><td><span class="c">     ballY = y;</span></td></tr><tr><td class="number">178</td><td><span class="c">     ballImage = (BITMAP*)data[ball].dat;</span></td></tr><tr><td class="number">179</td><td><span class="c">};</span></td></tr><tr><td class="number">180</td><td><span class="c">*/</span></td></tr><tr><td class="number">181</td><td><span class="c">//our main method</span></td></tr><tr><td class="number">182</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">183</td><td><span class="k2">{</span></td></tr><tr><td class="number">184</td><td>    <span class="c">//this initilises Allegro</span></td></tr><tr><td class="number">185</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">186</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">187</td><td>        <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">188</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">189</td><td>    </td></tr><tr><td class="number">190</td><td>    <span class="c">//set the colour depth</span></td></tr><tr><td class="number">191</td><td>    <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">24</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">192</td><td>    </td></tr><tr><td class="number">193</td><td>    <span class="c">//here we set up a new window to use</span></td></tr><tr><td class="number">194</td><td>    <span class="c">//the first parameter is the driver we're using</span></td></tr><tr><td class="number">195</td><td>    <span class="c">//the next 2 specify height and width</span></td></tr><tr><td class="number">196</td><td>    <span class="c">//the last 2 are for memory allocation</span></td></tr><tr><td class="number">197</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT, <span class="n">800</span>, <span class="n">600</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">198</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">199</td><td>        <span class="c">//should te above fail, we want to try and set it using SAFE mode</span></td></tr><tr><td class="number">200</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_SAFE, <span class="n">800</span>, <span class="n">600</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">201</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">202</td><td>            <span class="c">//and if that fails we want to tell the suer why the program will not work</span></td></tr><tr><td class="number">203</td><td>            <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_TEXT, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">204</td><td>            <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Unable to initiate any graphics mode!\n$s\n"</span>, <a href="http://www.allegro.cc/manual/allegro_error" target="_blank"><span class="a">allegro_error</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">205</td><td>            <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">206</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">207</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">208</td><td>       </td></tr><tr><td class="number">209</td><td>    <span class="c">//clear the screen to be entirely white</span></td></tr><tr><td class="number">210</td><td>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">211</td><td>        </td></tr><tr><td class="number">212</td><td>    <span class="c">//this installs the keyboard driver so we can use it</span></td></tr><tr><td class="number">213</td><td>    <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">214</td><td>    </td></tr><tr><td class="number">215</td><td>    <span class="c">//this installs the mouse</span></td></tr><tr><td class="number">216</td><td>    <a href="http://www.allegro.cc/manual/install_mouse" target="_blank"><span class="a">install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">217</td><td>    </td></tr><tr><td class="number">218</td><td>    <span class="c">//installing the timer routines</span></td></tr><tr><td class="number">219</td><td>    <a href="http://www.allegro.cc/manual/install_timer" target="_blank"><span class="a">install_timer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">220</td><td>    </td></tr><tr><td class="number">221</td><td>    <span class="c">//creating a timer</span></td></tr><tr><td class="number">222</td><td>    <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>increment_speed_counter, BPS_TO_TIMER<span class="k2">(</span><span class="n">60</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">223</td><td>    </td></tr><tr><td class="number">224</td><td>    <span class="c">//declaring &amp; creating the buffer</span></td></tr><tr><td class="number">225</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">226</td><td>    </td></tr><tr><td class="number">227</td><td>    <span class="c">//init our data</span></td></tr><tr><td class="number">228</td><td>    init_data<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">229</td><td>    </td></tr><tr><td class="number">230</td><td>    player bboy<span class="k2">;</span></td></tr><tr><td class="number">231</td><td>    </td></tr><tr><td class="number">232</td><td>    bboy.init<span class="k2">(</span><span class="n">400</span>, <span class="n">200</span><span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">233</td><td>    </td></tr><tr><td class="number">234</td><td>    <span class="c">//the mosue cursor</span></td></tr><tr><td class="number">235</td><td>    <span class="c">//BITMAP *cursor;</span></td></tr><tr><td class="number">236</td><td>    </td></tr><tr><td class="number">237</td><td>    <span class="c">//cursor = (BITMAP*)data[mouse_cursor].dat;</span></td></tr><tr><td class="number">238</td><td>                   </td></tr><tr><td class="number">239</td><td>    <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">240</td><td>    <span class="k2">{</span>   </td></tr><tr><td class="number">241</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_A<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">242</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">243</td><td>            bboy.move_left<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">244</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">245</td><td>        <span class="k1">else</span></td></tr><tr><td class="number">246</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_D<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">247</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">248</td><td>            bboy.move_right<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">249</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">250</td><td>        <span class="k1">else</span></td></tr><tr><td class="number">251</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">252</td><td>            bboy.state <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">253</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">254</td><td>&#160;</td></tr><tr><td class="number">255</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">256</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">257</td><td>            bboy.jump<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">258</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">259</td><td>        <span class="k1">else</span></td></tr><tr><td class="number">260</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">261</td><td>            bboy.velocity <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">262</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">263</td><td>    </td></tr><tr><td class="number">264</td><td>        <span class="c">//draw_sprite(buffer, bg, 0, 0); </span></td></tr><tr><td class="number">265</td><td>        bboy.draw_player<span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">266</td><td>        </td></tr><tr><td class="number">267</td><td>        <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="s">"WASD to move"</span>, <span class="n">10</span>, <span class="n">10</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">268</td><td>    </td></tr><tr><td class="number">269</td><td>        <span class="c">//drawing the mouse cursor to the screen</span></td></tr><tr><td class="number">270</td><td>        <span class="c">//draw_sprite(buffer, cursor, mouse_x, mouse_y);        </span></td></tr><tr><td class="number">271</td><td>        <span class="c">//drawing the buffers</span></td></tr><tr><td class="number">272</td><td>        <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">273</td><td>        <span class="c">//clearing the buffer</span></td></tr><tr><td class="number">274</td><td>        <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">275</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">276</td><td>    </td></tr><tr><td class="number">277</td><td>    <span class="c">//now we wait for a key press</span></td></tr><tr><td class="number">278</td><td>    <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">279</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">280</td><td>    <span class="c">//unload_datafile(falling);</span></td></tr><tr><td class="number">281</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">282</td><td><span class="k2">}</span></td></tr><tr><td class="number">283</td><td>&#160;</td></tr><tr><td class="number">284</td><td><span class="c">//we have to call this when using Allegro</span></td></tr><tr><td class="number">285</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Hoey)</author>
		<pubDate>Wed, 18 Apr 2007 18:28:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>When you name a datafile object like that, grabber makes a header file like this:</p><p><span class="source-code"><span class="p">#define ball 1</span></span></p><p>That means that <b>wherever</b> the word &quot;ball&quot; appears in your source code, the compiler changes it to a &quot;1&quot;. So, your code looks like this:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">class</span> <span class="n">1</span>
<span class="k2">{</span>
...
</pre></div></div><p>

Well, obviously that isn&#39;t valid. That is why we typically name datafile objects in all capital letters, because we don&#39;t name variables and classes in all capital letters.</p><p>So, the answer is to change the name of the object in the datafile to something like &quot;DATAFILE_BALL&quot; instead of &quot;ball&quot;.</p><p>[append]<br />The same goes for bg and, well, anything else in the data file.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Wed, 18 Apr 2007 19:28:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ah, okay. Thank you.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Hoey)</author>
		<pubDate>Wed, 18 Apr 2007 20:18:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can automate half of the changes:
</p><div class="quote_container"><div class="title">allegro manual said:</div><div class="quote"><p>

To prevent name conflicts, you can specify a prefix string for these definitions by typing it into the &quot;Prefix:&quot; field in the grabber or using the &#39;-p&#39; option to dat
</p></div></div><p>

ie: if you use a prefix like &quot;datafile_item_&quot;, the generated header file will automatically be <span class="source-code"><span class="p">#define datafile_item_ball 1</span></span><br />You&#39;ll still have to change the &quot;calls&quot; yourself, anyway: <span class="source-code">ballImage <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>datafile_item_ball<span class="k2">]</span>.dat<span class="k2">;</span></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Audric)</author>
		<pubDate>Wed, 18 Apr 2007 21:22:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
So, the answer is to change the name of the object in the datafile to something like &quot;DATAFILE_BALL&quot; instead of &quot;ball&quot;.
</p></div></div><p>
Another option (which I tend to use) is keeping the file extensions when adding objects to the datafile. The dat tool does this by default, so the following command:
</p><pre>
dat mydatafile.dat -a foo.bmp -t BMP
</pre><p>
...will add a bitmap object called &quot;FOO_BMP&quot; to the datafile (letters are automatically uppercased, and all non-alphanumeric characters are converted to underscores). Since your identifiers don&#39;t usually end with _BMP or _PCX or _WAV or whatever extension you use, this works rather well.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Wed, 18 Apr 2007 21:44:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now try naming the new entry something <i>besides</i> foo.bmp</p><p>Ya, ya thats right, you can&#39;t do it!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Thu, 19 Apr 2007 00:28:09 +0000</pubDate>
	</item>
</rss>
