<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>problems with my struct? or with my masked blitting?</title>
		<link>http://www.allegro.cc/forums/view/575186</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 27 Mar 2006 09:45:19 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>hello, ive ran into a rather wierd problem and i think it might either have to do with my structs, or the way i am blitting my bitmaps to the buffer, but i had the game working fine so far until i added a new struct into my header file. I added the struct for a &quot;bigball&quot;, but when i go to blit the ball to the screen it messes up the coordinates for my second player, and for some reason the ball and the second player both go to the same position... if anyone has the time, id appreciate it if they would take a look at my code... <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p><p>this is my header file named header.h
</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="p">#ifndef _HEADER_H</span>
<span class="number">  2</span><span class="p">#define _HEADER_H</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="p">#include &lt;allegro.h&gt;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">struct</span> tagPlayers
<span class="number">  7</span><span class="k2">{</span>
<span class="number">  8</span>       <span class="k1">float</span> x,y<span class="k2">;</span>
<span class="number">  9</span>       <span class="k1">float</span> speed<span class="k2">;</span>
<span class="number"> 10</span>       <span class="k1">int</span> grabx,graby<span class="k2">;</span>
<span class="number"> 11</span>       <span class="k1">int</span> frame,row<span class="k2">;</span>
<span class="number"> 12</span>       <span class="k1">int</span> anim_timer,anim_delay<span class="k2">;</span>
<span class="number"> 13</span>       <span class="k1">int</span> alive<span class="k2">;</span>
<span class="number"> 14</span><span class="k2">}</span>player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span><span class="k1">struct</span> tagBigBalls
<span class="number"> 17</span><span class="k2">{</span>
<span class="number"> 18</span>       <span class="k1">float</span> x,y<span class="k2">;</span>
<span class="number"> 19</span>       <span class="k1">float</span> y_vel<span class="k2">;</span>
<span class="number"> 20</span>       <span class="k1">float</span> speed<span class="k2">;</span>
<span class="number"> 21</span>       <span class="k1">int</span> alive<span class="k2">;</span>
<span class="number"> 22</span><span class="k2">}</span>bigball<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 23</span>
<span class="number"> 24</span><span class="p">#endif</span>
</div></div><p>

And this is my main.cpp
</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="p">#include "header.h"</span>
<span class="number">   2</span>
<span class="number">   3</span><span class="k1">void</span> init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   4</span><span class="k1">void</span> deinit<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   5</span><span class="k1">void</span> clear_buffer<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>backround<span class="k2">)</span><span class="k2">;</span>
<span class="number">   6</span><span class="k1">void</span> player1_code<span class="k2">(</span><a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span>die<span class="k2">)</span><span class="k2">;</span>
<span class="number">   7</span><span class="k1">void</span> player1_anim<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   8</span><span class="k1">void</span> player2_code<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   9</span><span class="k1">void</span> player1_anim<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  10</span><span class="k1">void</span> set_variables<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  11</span><span class="k1">void</span> draw_balls<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>big_ball,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>medium_ball,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>smallball<span class="k2">)</span><span class="k2">;</span>
<span class="number">  12</span><span class="k1">void</span> draw_buffer<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player1,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  13</span>
<span class="number">  14</span><span class="k1">void</span> clear_buffer<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>backround<span class="k2">)</span><span class="k2">{</span>
<span class="number">  15</span>     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>backround,buffer,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span>     <span class="k2">}</span>
<span class="number">  17</span>     
<span class="number">  18</span><span class="k1">void</span> player1_code<span class="k2">(</span><a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span>die<span class="k2">)</span><span class="k2">{</span>
<span class="number">  19</span>     <span class="c">//input on keyboard</span>
<span class="number">  20</span>     player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.row <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  21</span>     <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_RIGHT<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.alive <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  22</span>                        player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.row <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  23</span>                        player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x <span class="k3">+</span><span class="k3">=</span> player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number">  24</span>                        <span class="k2">}</span>
<span class="number">  25</span>     <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_LEFT<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.alive <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  26</span>                       player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.row <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  27</span>                       player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number">  28</span>                       <span class="k2">}</span>
<span class="number">  29</span>     <span class="k1">if</span><span class="k2">(</span>player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.alive <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  30</span>                        player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.row <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number">  31</span>                        <span class="k2">}</span>
<span class="number">  32</span>     <span class="c">//left and right boundry</span>
<span class="number">  33</span>     <span class="k1">if</span><span class="k2">(</span>player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x-8 <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  34</span>                      player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x <span class="k3">=</span> <span class="n">8</span><span class="k2">;</span>
<span class="number">  35</span>                      <span class="k2">}</span>
<span class="number">  36</span>     <span class="k1">if</span><span class="k2">(</span>player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x<span class="k3">+</span><span class="n">8</span> <span class="k3">&gt;</span> <span class="n">640</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  37</span>                      player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x <span class="k3">=</span> <span class="n">632</span><span class="k2">;</span>
<span class="number">  38</span>                      <span class="k2">}</span>
<span class="number">  39</span>     <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_F<span class="k2">]</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  40</span>                    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.alive <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  41</span>                                        <a href="http://www.allegro.cc/manual/play_sample" target="_blank"><span class="a">play_sample</span></a><span class="k2">(</span>die,<span class="n">255</span>,<span class="n">128</span>,<span class="n">1500</span>,FALSE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>                                        <span class="k2">}</span>
<span class="number">  43</span>                    player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.alive <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  44</span>                    <span class="k2">}</span>
<span class="number">  45</span>     <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_G<span class="k2">]</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  46</span>                    player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.alive <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  47</span>                    <span class="k2">}</span>
<span class="number">  48</span>     <span class="k2">}</span>
<span class="number">  49</span>     
<span class="number">  50</span><span class="k1">void</span> player1_anim<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  51</span>     player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.anim_timer--<span class="k2">;</span>
<span class="number">  52</span>     <span class="k1">if</span><span class="k2">(</span>player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.anim_timer <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  53</span>                             player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  54</span>                             player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.anim_timer <span class="k3">=</span> player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.anim_delay<span class="k2">;</span>
<span class="number">  55</span>                             <span class="k2">}</span>
<span class="number">  56</span>     <span class="k1">if</span><span class="k2">(</span>player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.frame <span class="k3">&gt;</span> <span class="n">2</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  57</span>                        player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  58</span>                        <span class="k2">}</span>
<span class="number">  59</span>     <span class="k2">}</span>
<span class="number">  60</span>     
<span class="number">  61</span><span class="k1">void</span> player2_code<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  62</span>     <span class="c">//input on keyboard</span>
<span class="number">  63</span>     player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.row <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  64</span>     <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_D<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.alive <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  65</span>                        player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.row <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  66</span>                        player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.x <span class="k3">+</span><span class="k3">=</span> player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number">  67</span>                        <span class="k2">}</span>
<span class="number">  68</span>     <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_A<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.alive <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  69</span>                       player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.row <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  70</span>                       player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number">  71</span>                       <span class="k2">}</span>
<span class="number">  72</span>     <span class="k1">if</span><span class="k2">(</span>player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.alive <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  73</span>                        player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.row <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number">  74</span>                        <span class="k2">}</span>
<span class="number">  75</span>     <span class="c">//left and right boundry</span>
<span class="number">  76</span>     <span class="k1">if</span><span class="k2">(</span>player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.x-8 <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  77</span>                      player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.x <span class="k3">=</span> <span class="n">8</span><span class="k2">;</span>
<span class="number">  78</span>                      <span class="k2">}</span>
<span class="number">  79</span>     <span class="k1">if</span><span class="k2">(</span>player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.x<span class="k3">+</span><span class="n">8</span> <span class="k3">&gt;</span> <span class="n">640</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  80</span>                      player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.x <span class="k3">=</span> <span class="n">632</span><span class="k2">;</span>
<span class="number">  81</span>                      <span class="k2">}</span>
<span class="number">  82</span>     <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_F<span class="k2">]</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  83</span>                    player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.alive <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  84</span>                    <span class="k2">}</span>
<span class="number">  85</span>     <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_G<span class="k2">]</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  86</span>                    player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.alive <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  87</span>                    <span class="k2">}</span>
<span class="number">  88</span>     <span class="k2">}</span>
<span class="number">  89</span>     
<span class="number">  90</span><span class="k1">void</span> player2_anim<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  91</span>     player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.anim_timer--<span class="k2">;</span>
<span class="number">  92</span>     <span class="k1">if</span><span class="k2">(</span>player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.anim_timer <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  93</span>                             player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  94</span>                             player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.anim_timer <span class="k3">=</span> player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.anim_delay<span class="k2">;</span>
<span class="number">  95</span>                             <span class="k2">}</span>
<span class="number">  96</span>     <span class="k1">if</span><span class="k2">(</span>player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.frame <span class="k3">&gt;</span> <span class="n">2</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  97</span>                        player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  98</span>                        <span class="k2">}</span>
<span class="number">  99</span>     <span class="k2">}</span>
<span class="number"> 100</span>     
<span class="number"> 101</span><span class="k1">void</span> set_variables<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span>
<span class="number"> 102</span>     <span class="c">//set game variables</span>
<span class="number"> 103</span>   player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x <span class="k3">=</span> <span class="n">490</span><span class="k2">;</span>
<span class="number"> 104</span>   player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.y <span class="k3">=</span> <span class="n">448</span><span class="k2">;</span>
<span class="number"> 105</span>   player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 106</span>   player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 107</span>   player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.row <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 108</span>   player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.anim_delay <span class="k3">=</span> <span class="n">8</span><span class="k2">;</span>
<span class="number"> 109</span>   player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.anim_timer <span class="k3">=</span> player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.anim_delay<span class="k2">;</span>
<span class="number"> 110</span>   player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.alive <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 111</span>   player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.x <span class="k3">=</span> <span class="n">150</span><span class="k2">;</span>
<span class="number"> 112</span>   player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.y <span class="k3">=</span> <span class="n">448</span><span class="k2">;</span>
<span class="number"> 113</span>   player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 114</span>   player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 115</span>   player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.row <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 116</span>   player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.anim_delay <span class="k3">=</span> <span class="n">8</span><span class="k2">;</span>
<span class="number"> 117</span>   player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.anim_timer <span class="k3">=</span> player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.anim_delay<span class="k2">;</span>
<span class="number"> 118</span>   player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.alive <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 119</span>   bigball<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x <span class="k3">=</span> <span class="n">50</span><span class="k2">;</span>
<span class="number"> 120</span>   bigball<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.y <span class="k3">=</span> <span class="n">50</span><span class="k2">;</span>
<span class="number"> 121</span>     <span class="k2">}</span>
<span class="number"> 122</span>     
<span class="number"> 123</span><span class="k1">void</span> draw_balls<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>big_ball,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>medium_ball,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>smallball<span class="k2">)</span><span class="k2">{</span>
<span class="number"> 124</span>     <span class="c">//stuff here</span>
<span class="number"> 125</span>     <a href="http://www.allegro.cc/manual/masked_blit" target="_blank"><span class="a">masked_blit</span></a><span class="k2">(</span>big_ball,buffer,<span class="n">0</span>,<span class="n">0</span>,bigball<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x-32,bigball<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.y-32,<span class="n">64</span>,<span class="n">64</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>     <span class="k2">}</span>
<span class="number"> 127</span>     
<span class="number"> 128</span><span class="k1">void</span> draw_buffer<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player1,<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player2<span class="k2">)</span><span class="k2">{</span>
<span class="number"> 129</span>     <span class="c">//player 1 bitmap values</span>
<span class="number"> 130</span>     player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.grabx <span class="k3">=</span> <span class="n">16</span><span class="k3">*</span>player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.frame<span class="k2">;</span>
<span class="number"> 131</span>     player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.graby <span class="k3">=</span> <span class="n">16</span><span class="k3">*</span>player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.row<span class="k2">;</span>
<span class="number"> 132</span>     <span class="c">//player 2 bitmap values</span>
<span class="number"> 133</span>     player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.grabx <span class="k3">=</span> <span class="n">16</span><span class="k3">*</span>player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.frame<span class="k2">;</span>
<span class="number"> 134</span>     player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.graby <span class="k3">=</span> <span class="n">16</span><span class="k3">*</span>player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.row<span class="k2">;</span>
<span class="number"> 135</span>     <span class="c">//player 1 to buffer</span>
<span class="number"> 136</span>     <a href="http://www.allegro.cc/manual/masked_blit" target="_blank"><span class="a">masked_blit</span></a><span class="k2">(</span>player1,buffer,player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.grabx,player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.graby,player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.x-8,player<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.y-8,<span class="n">16</span>,<span class="n">16</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</span>     <span class="c">//player 2 to buffer</span>
<span class="number"> 138</span>     <a href="http://www.allegro.cc/manual/masked_blit" target="_blank"><span class="a">masked_blit</span></a><span class="k2">(</span>player2,buffer,player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.grabx,player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.graby,player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.x-8,player<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.y-8,<span class="n">16</span>,<span class="n">16</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>     <span class="c">//buffer to the screen</span>
<span class="number"> 140</span>     <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>,<a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>,<a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 141</span>     <span class="k2">}</span>
<span class="number"> 142</span>
<span class="number"> 143</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 144</span>  init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 145</span>  
<span class="number"> 146</span>  <span class="c">//define bitmaps</span>
<span class="number"> 147</span>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer<span class="k2">;</span>
<span class="number"> 148</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">640</span>,<span class="n">480</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 149</span>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player1<span class="k2">;</span>
<span class="number"> 150</span>  player1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"bitmaps/player1.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 151</span>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player2<span class="k2">;</span>
<span class="number"> 152</span>  player2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"bitmaps/player2.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 153</span>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>backround<span class="k2">;</span>
<span class="number"> 154</span>  backround <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"bitmaps/backround.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 155</span>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>big_ball<span class="k2">;</span>
<span class="number"> 156</span>  big_ball <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"bitmaps/bigball.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 157</span>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>medium_ball<span class="k2">;</span>
<span class="number"> 158</span>  medium_ball <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"bitmaps/mediumball.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 159</span>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>small_ball<span class="k2">;</span>
<span class="number"> 160</span>  small_ball <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"bitmaps/smallball.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 161</span>  <a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span>die<span class="k2">;</span>
<span class="number"> 162</span>  die <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_sample" target="_blank"><span class="a">load_sample</span></a><span class="k2">(</span><span class="s">"sounds/splat.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 163</span>  set_variables<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 164</span>
<span class="number"> 165</span>  <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> <span class="k2">{</span>
<span class="number"> 166</span>    clear_buffer<span class="k2">(</span>buffer,backround<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 167</span>    player1_code<span class="k2">(</span>die<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 168</span>    player1_anim<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 169</span>    player2_code<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 170</span>    player2_anim<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 171</span>    draw_balls<span class="k2">(</span>buffer,big_ball,medium_ball,small_ball<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 172</span>    draw_buffer<span class="k2">(</span>buffer,player1,player2<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 173</span>    <span class="c">//slow the game down</span>
<span class="number"> 174</span>    <a href="http://www.allegro.cc/manual/vsync" target="_blank"><span class="a">vsync</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 175</span>  <span class="k2">}</span>
<span class="number"> 176</span>
<span class="number"> 177</span>  deinit<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 178</span>  <span class="c">//destroy_bitmaps</span>
<span class="number"> 179</span>  <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>
<span class="number"> 180</span>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>player1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 181</span>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>player2<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 182</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 183</span><span class="k2">}</span>
<span class="number"> 184</span><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>
<span class="number"> 185</span>
<span class="number"> 186</span><span class="k1">void</span> init<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 187</span>  <span class="k1">int</span> depth, res<span class="k2">;</span>
<span class="number"> 188</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="k2">;</span>
<span class="number"> 189</span>  depth <span class="k3">=</span> <a href="http://www.allegro.cc/manual/desktop_color_depth" target="_blank"><span class="a">desktop_color_depth</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 190</span>  <span class="k1">if</span> <span class="k2">(</span>depth <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> depth <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span>
<span class="number"> 191</span>  <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span>depth<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 192</span>  res <span class="k3">=</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_WINDOWED, <span class="n">640</span>, <span class="n">480</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 193</span>  <span class="k1">if</span> <span class="k2">(</span>res <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 194</span>    <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</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>
<span class="number"> 195</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 196</span>  <span class="k2">}</span>
<span class="number"> 197</span>
<span class="number"> 198</span>  <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>
<span class="number"> 199</span>  <a href="http://www.allegro.cc/manual/install_sound" target="_blank"><span class="a">install_sound</span></a><span class="k2">(</span>DIGI_AUTODETECT,MIDI_NONE,<span class="s">""</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 200</span>  <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>
<span class="number"> 201</span>  <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>
<span class="number"> 202</span>  <span class="c">/* add other initializations here */</span>
<span class="number"> 203</span><span class="k2">}</span>
<span class="number"> 204</span>
<span class="number"> 205</span><span class="k1">void</span> deinit<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 206</span>  <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 207</span>  <span class="c">/* add other deinitializations here */</span>
<span class="number"> 208</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (MSGleader)</author>
		<pubDate>Mon, 27 Mar 2006 07:58:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#ifndef _HEADER_H</span></td></tr><tr><td class="number">2</td><td><span class="p">#define _HEADER_H</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="k1">struct</span> tagPlayers</td></tr><tr><td class="number">7</td><td><span class="k2">{</span></td></tr><tr><td class="number">8</td><td>       <span class="k1">float</span> x,y<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>       <span class="k1">float</span> speed<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>       <span class="k1">int</span> grabx,graby<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>       <span class="k1">int</span> frame,row<span class="k2">;</span></td></tr><tr><td class="number">12</td><td>       <span class="k1">int</span> anim_timer,anim_delay<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>       <span class="k1">int</span> alive<span class="k2">;</span></td></tr><tr><td class="number">14</td><td><span class="k2">}</span>player<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">;</span> <span class="c">// change this to 2</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td><span class="k1">struct</span> tagBigBalls</td></tr><tr><td class="number">17</td><td><span class="k2">{</span></td></tr><tr><td class="number">18</td><td>       <span class="k1">float</span> x,y<span class="k2">;</span></td></tr><tr><td class="number">19</td><td>       <span class="k1">float</span> y_vel<span class="k2">;</span></td></tr><tr><td class="number">20</td><td>       <span class="k1">float</span> speed<span class="k2">;</span></td></tr><tr><td class="number">21</td><td>       <span class="k1">int</span> alive<span class="k2">;</span></td></tr><tr><td class="number">22</td><td><span class="k2">}</span>bigball<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>&#160;</td></tr><tr><td class="number">24</td><td><span class="p">#endif</span></td></tr></tbody></table></div></div><p>

you need to initilise your players with the total number of elements, which is 2(1+1) as opposed to 1(0+1).  stupid I know, but thats how it is.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CosmicR)</author>
		<pubDate>Mon, 27 Mar 2006 08:36:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>but player[2] means that there is three players then doesnt it? or do you not use the 0?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (MSGleader)</author>
		<pubDate>Mon, 27 Mar 2006 08:49:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>yeah, you still address the first one using 0, but you initialise it with the total number of elements, not the final elements address.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CosmicR)</author>
		<pubDate>Mon, 27 Mar 2006 09:17:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ok, so i would put player[1]...<br />and then when i set the variables or used them later i would use...<br />player[1].x = 50;<br />^but player[1].x is really meaning player[0].x in the struct?</p><p>or would i just keep everything else the same, and only change the struct player[2];<br />I'm dumb!<br />im a bit confused here...:(</p><p>EDIT:</p><p>DUDE!</p><p>nevermind! i got it to work by just changing what you said to in the first reply!<br />thanx so much! I'm dumb!<br />now it makes sense to me.<br />when you have a struct sorta like this
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">struct</span> tagPlayers
<span class="k2">{</span>
     <span class="k1">float</span> x,y<span class="k2">;</span>
     <span class="k1">float</span> alive<span class="k2">;</span>
     <span class="k1">int</span> frame<span class="k2">;</span>
<span class="k2">}</span>player<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">;</span>
</pre></div></div><p>

the player[2] at the end means theres gonna be 2 players, player[0] is one and player[1] is two <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>thanx a bunch again
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (MSGleader)</author>
		<pubDate>Mon, 27 Mar 2006 09:37:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>yep - you got it.  no probs.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CosmicR)</author>
		<pubDate>Mon, 27 Mar 2006 09:45:19 +0000</pubDate>
	</item>
</rss>
