<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Scrolling Camera - Using Transforms</title>
		<link>http://www.allegro.cc/forums/view/610717</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 29 Jul 2012 04:01:50 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m having an issue with using transformations to achieve a scrolling camera effect. I&#39;ve just started learning about transformations today and I&#39;m having trouble understanding some of the documentation on them. </p><p>I&#39;ll start by saying what it is I&#39;m drawing:<br />1st I draw: my map.<br />2nd: my character.</p><p>NOTE: (I&#39;m doing all of my &quot;transform&quot; related stuff in my &quot;update&quot; area. after looking around it appears as if people like to put their transform related stuff in their render section. Which is more correct?)</p><p>The problem is when i move my character to the lower left hand corner of the screen, rather than my map being there, (which is 3200 x 3200 pixels and my display is only 800 x 600) all i see is a black abyss past that 800 x 600 point. </p><p>Example: <br />window width = 800;<br />window height = 600;</p><p>Pixels after 800 and after 600 are longer my map but rather a black non-drawn section. (Note: my character still gets drawn in this section just my map doesn&#39;t)  <br />_________________________________________________________________________________</p><p>Any ideas? I&#39;m still new to transforms so I&#39;m sure I&#39;ve missed something.</p><p>Ill post some of my code if needed. </p><p>Thanks,<br />-Ryan
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ryancoboy)</author>
		<pubDate>Sat, 28 Jul 2012 05:46:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/610717/961433#target">ryancoboy</a> said:</div><div class="quote"><p> Ill post some of my code if needed. 
</p></div></div><p>Please.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sat, 28 Jul 2012 06:01:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry for the late reply, had to run to the store.</p><p>Edit: before I actually post my code can anyone one tell me how to put my code in a &quot;code block&quot; here on the forums. I&#39;ve never done it before. Sorry.</p><p>Thanks, <br />Ryan
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ryancoboy)</author>
		<pubDate>Sat, 28 Jul 2012 07:38:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This:
</p><pre>
&lt;code&gt;
printf(&quot;Yay\n&quot;)
&lt;/code&gt;
</pre><p>
Turns into:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Yay\n"</span><span class="k2">)</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sat, 28 Jul 2012 08:09:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here is the code i believe to be in question.</p><p>Update and Render method:
</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="c">//==============================================</span>
<span class="number">  2</span><span class="c">//GAME UPDATE</span>
<span class="number">  3</span><span class="c">//==============================================</span>
<span class="number">  4</span><span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number">  5</span><span class="k2">{</span>
<span class="number">  6</span>  render <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  7</span>        
<span class="number">  8</span>  <span class="c">//==============================================</span>
<span class="number">  9</span>  <span class="c">//UPDATE characters position</span>
<span class="number"> 10</span>  <span class="c">//==============================================</span>
<span class="number"> 11</span>  UpdateCharaPos<span class="k2">(</span>Character<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>  <span class="c">//==============================================</span>
<span class="number"> 14</span>  <span class="c">//character animation delay</span>
<span class="number"> 15</span>  <span class="c">//==============================================</span>
<span class="number"> 16</span>  Character.Set_FrameCount<span class="k2">(</span>Character.Get_FrameCount<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>  <span class="k1">if</span><span class="k2">(</span>Character.Get_FrameCount<span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">=</span> Character.Get_FrameUpdateDelay<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 18</span>  <span class="k2">{</span>
<span class="number"> 19</span>    <span class="c">//==============================================</span>
<span class="number"> 20</span>    <span class="c">//UPDATE characters animation</span>
<span class="number"> 21</span>    <span class="c">//==============================================</span>
<span class="number"> 22</span>    UpdateCharaAnim<span class="k2">(</span>Character<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>    Character.Set_FrameCount<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>  <span class="k2">}</span>
<span class="number"> 25</span>
<span class="number"> 26</span>  <span class="c">//==============================================</span>
<span class="number"> 27</span>  <span class="c">//Look for any collisions</span>
<span class="number"> 28</span>  <span class="c">//==============================================</span>
<span class="number"> 29</span>  MapChangeLayer<span class="k2">(</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>  BlockData <span class="k3">=</span> MapGetBlockInPixels<span class="k2">(</span>Character.Get_PosX<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>Character.Get_FrameHeight<span class="k2">(</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span>, Character.Get_PosY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> Character.Get_FrameWidth<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>
<span class="number"> 32</span>      <span class="k1">if</span><span class="k2">(</span>BlockData-&gt;user1 <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span> <span class="k3">|</span><span class="k3">|</span> Character.Get_PosX<span class="k2">(</span><span class="k2">)</span> <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">|</span><span class="k3">|</span> Character.Get_PosY<span class="k2">(</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>Character.Get_FrameHeight<span class="k2">(</span><span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">|</span><span class="k3">|</span> Character.Get_PosX<span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">=</span> <span class="k2">(</span>mapwidth <span class="k3">*</span> <span class="n">32</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> Character.Get_PosY<span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">=</span> <span class="k2">(</span>mapheight <span class="k3">*</span> <span class="n">32</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 33</span>      <span class="k2">{</span>
<span class="number"> 34</span>        ResolveCollision<span class="k2">(</span>Character<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>      <span class="k2">}</span>
<span class="number"> 36</span>      
<span class="number"> 37</span>      MapChangeLayer<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>      <span class="c">//==============================================</span>
<span class="number"> 39</span>      
<span class="number"> 40</span>      <span class="c">//==============================================</span>
<span class="number"> 41</span>      <span class="c">//Transforms code</span>
<span class="number"> 42</span>      <span class="c">//==============================================</span>
<span class="number"> 43</span>      UpdateCamera<span class="k2">(</span>CamX, CamY, Character.Get_PosX<span class="k2">(</span><span class="k2">)</span>, Character.Get_PosY<span class="k2">(</span><span class="k2">)</span>, Character.Get_FrameWidth<span class="k2">(</span><span class="k2">)</span>, Character.Get_FrameHeight<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 44</span>
<span class="number"> 45</span>      <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 46</span>      <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera, <span class="k3">-</span>CamX, <span class="k3">-</span>CamY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span>      <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 48</span>      <span class="c">//==============================================</span>
<span class="number"> 49</span>      
<span class="number"> 50</span>
<span class="number"> 51</span>      <span class="c">//UPDATE FPS===========</span>
<span class="number"> 52</span>      frames<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 53</span>      <span class="k1">if</span><span class="k2">(</span>al_current_time<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> gameTime <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 54</span>      <span class="k2">{</span>
<span class="number"> 55</span>        gameTime <span class="k3">=</span> al_current_time<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 56</span>        gameFPS <span class="k3">=</span> frames<span class="k2">;</span>
<span class="number"> 57</span>        frames <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="c">//=====================</span>
<span class="number"> 60</span>
<span class="number"> 61</span>    <span class="k2">}</span>
<span class="number"> 62</span>
<span class="number"> 63</span>    <span class="c">//==============================================</span>
<span class="number"> 64</span>    <span class="c">//RENDER</span>
<span class="number"> 65</span>    <span class="c">//==============================================</span>
<span class="number"> 66</span>    <span class="k1">if</span><span class="k2">(</span>render <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 67</span>    <span class="k2">{</span>
<span class="number"> 68</span>      render <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 69</span>      
<span class="number"> 70</span>      <span class="c">//==============================================</span>
<span class="number"> 71</span>      <span class="c">//Draw the Map - and each of it's layers</span>
<span class="number"> 72</span>      <span class="c">//==============================================</span>
<span class="number"> 73</span>      MapDrawBG<span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 74</span>      MapChangeLayer<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 75</span>      MapDrawBG<span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 76</span>      MapChangeLayer<span class="k2">(</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 77</span>      MapDrawBG<span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 78</span>      MapChangeLayer<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 79</span>      <span class="c">//==============================================</span>
<span class="number"> 80</span>      
<span class="number"> 81</span>      <span class="c">//==============================================</span>
<span class="number"> 82</span>      <span class="c">//Draw the character</span>
<span class="number"> 83</span>      <span class="c">//==============================================</span>
<span class="number"> 84</span>      DrawChara<span class="k2">(</span>Character<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 85</span>
<span class="number"> 86</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>font18, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">5</span>, <span class="n">5</span>, <span class="n">0</span>, <span class="s">"FPS: %i"</span>, gameFPS<span class="k2">)</span><span class="k2">;</span>  <span class="c">//display FPS on screen</span>
<span class="number"> 87</span>
<span class="number"> 88</span>      <span class="c">//FLIP BUFFERS========================</span>
<span class="number"> 89</span>      <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 90</span>      <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</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>
<span class="number"> 91</span>    <span class="k2">}</span>
</div></div><p>

And here is the Update Camera function:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> UpdateCamera<span class="k2">(</span><span class="k1">float</span> <span class="k3">&amp;</span>CamPosX, <span class="k1">float</span> <span class="k3">&amp;</span>CamPosY, <span class="k1">float</span> x, <span class="k1">float</span> y, <span class="k1">int</span> PlayerWidth, <span class="k1">int</span> PlayerHeight<span class="k2">)</span>
<span class="k2">{</span>
  CamPosX <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>WIDTH <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>x <span class="k3">+</span> PlayerWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
  CamPosY <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>HEIGHT <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>y <span class="k3">+</span> PlayerHeight <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>

  <span class="k1">if</span><span class="k2">(</span>CamPosX <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
  <span class="k2">{</span>
    CamPosX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
  <span class="k2">}</span>
  <span class="k1">if</span><span class="k2">(</span>CamPosY <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
  <span class="k2">{</span>
    CamPosY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
  <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>

EDIT: I should also mention that I&#39;m using the tile engine &quot;Mappy&quot; in my project.</p><p>@SiegeLord: Thank you for showing that.  </p><p>Thanks,<br />-Ryan
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ryancoboy)</author>
		<pubDate>Sat, 28 Jul 2012 08:35:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;ll probably need to turn off the transformation while using the <span class="source-code">MapDrawBG</span> calls. Mappy doesn&#39;t seem to be designed to be used with transformations.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sat, 28 Jul 2012 09:48:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I considered that. But that is where my understanding of the Allegro documentation fails. By &quot;turn off transformation&quot; I&#39;m going to assume you mean set the transformation back to default. The only problem is I don&#39;t understand what it means when the documentation says &quot;Use al_use_transform on an identity transformation to return to the default.&quot; </p><p>So, if you could clarify that. I would be very grateful. perhaps give a real quick example? </p><p>Thanks,<br />-Ryan
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ryancoboy)</author>
		<pubDate>Sat, 28 Jul 2012 10:09:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> trans<span class="k2">;</span>
<a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>trans<span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>trans<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
You&#39;ll also want to do this when before you draw your GUI.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sat, 28 Jul 2012 10:11:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks it will be good to know how to do that in the future.</p><p>but i do believe i found the problem. I believe (i may be reading the code wrong) what Mappy does is it &quot;cuts&quot; out a piece of my map that fits inside of my screen width and height. This makes sense because why draw what the user will &quot;never&quot; see.</p><p>Well i want it to draw the whole thing. Ill show you the code for the MapDrawBG function and hopefully you can see what I would need to change in order to achieve my goal faster and easier than I will. </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="c">/* draw the background graphics on the current layer to the target bitmap, usually backbuffer */</span>
<span class="number">  2</span><span class="k1">void</span> MapDrawBG <span class="k2">(</span><span class="k1">int</span> mapxo, <span class="k1">int</span> mapyo, <span class="k1">int</span> mapx, <span class="k1">int</span> mapy,<span class="k1">int</span> mapw, <span class="k1">int</span> maph<span class="k2">)</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>  <span class="k1">int</span> i, j, mycl, mycr, myct, mycb, mapvclip, maphclip<span class="k2">;</span>
<span class="number">  5</span>  <span class="k1">int</span> mbgx, mbgy<span class="k2">;</span>
<span class="number">  6</span>  <span class="k1">short</span> <span class="k1">int</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number">  7</span>  <span class="k1">short</span> <span class="k1">int</span> <span class="k3">*</span>mymap2pt<span class="k2">;</span>
<span class="number">  8</span>  BLKSTR <span class="k3">*</span>blkdatapt<span class="k2">;</span>
<span class="number">  9</span>  ANISTR <span class="k3">*</span>myanpt<span class="k2">;</span>
<span class="number"> 10</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> mapdestpt<span class="k2">;</span>
<span class="number"> 11</span>
<span class="number"> 12</span>  mapdestpt<span class="k3">=</span>PushTargetDisplayAndBitmap<span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>  <a href="http://www.allegro.cc/manual/al_get_clipping_rectangle"><span class="a">al_get_clipping_rectangle</span></a><span class="k2">(</span><span class="k3">&amp;</span>mycl,<span class="k3">&amp;</span>mycr,<span class="k3">&amp;</span>myct,<span class="k3">&amp;</span>mycb<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>  <a href="http://www.allegro.cc/manual/al_set_clipping_rectangle"><span class="a">al_set_clipping_rectangle</span></a><span class="k2">(</span>mapx,mapy,mapw,maph<span class="k2">)</span><span class="k2">;</span><span class="c">//  set_clip (mapdestpt, mapx, mapy, mapx+mapw-1, mapy+maph-1);</span>
<span class="number"> 15</span>
<span class="number"> 16</span>  mapxo <span class="k3">-</span><span class="k3">=</span> mapblockstaggerx<span class="k2">;</span>
<span class="number"> 17</span>  mapyo <span class="k3">-</span><span class="k3">=</span> mapblockstaggery<span class="k2">;</span>
<span class="number"> 18</span>  mymappt <span class="k3">=</span> <span class="k2">(</span><span class="k1">short</span> <span class="k1">int</span> <span class="k3">*</span><span class="k2">)</span> mappt<span class="k2">;</span>
<span class="number"> 19</span>  <span class="k1">if</span> <span class="k2">(</span>mapblockstaggerx <span class="k3">|</span><span class="k3">|</span> mapblockstaggery<span class="k2">)</span> 
<span class="number"> 20</span>  <span class="k2">{</span>
<span class="number"> 21</span>    mymappt <span class="k3">+</span><span class="k3">=</span> <span class="k2">(</span>mapxo<span class="k3">/</span>mapblockgapx<span class="k2">)</span><span class="k3">+</span><span class="k2">(</span><span class="k2">(</span>mapyo<span class="k3">/</span>mapblockgapy<span class="k2">)</span><span class="k3">*</span>mapwidth<span class="k3">*</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>    mbgx <span class="k3">=</span> mapblockgapx<span class="k2">;</span>
<span class="number"> 23</span>    mbgy <span class="k3">=</span> mapblockgapy<span class="k2">;</span>
<span class="number"> 24</span>  <span class="k2">}</span>
<span class="number"> 25</span>  <span class="k1">else</span> 
<span class="number"> 26</span>  <span class="k2">{</span>
<span class="number"> 27</span>    mymappt <span class="k3">+</span><span class="k3">=</span> <span class="k2">(</span>mapxo<span class="k3">/</span>mapblockgapx<span class="k2">)</span><span class="k3">+</span><span class="k2">(</span><span class="k2">(</span>mapyo<span class="k3">/</span>mapblockgapy<span class="k2">)</span><span class="k3">*</span>mapwidth<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>    mbgx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 29</span>    mbgy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 30</span>  <span class="k2">}</span>
<span class="number"> 31</span>  mapvclip <span class="k3">=</span> mapyo%mapblockgapy<span class="k2">;</span>
<span class="number"> 32</span>  maphclip <span class="k3">=</span> mapxo%mapblockgapx<span class="k2">;</span>
<span class="number"> 33</span>
<span class="number"> 34</span>  mymap2pt <span class="k3">=</span> mymappt<span class="k2">;</span>
<span class="number"> 35</span>  <span class="k1">for</span> <span class="k2">(</span>j<span class="k3">=</span><span class="k2">(</span><span class="k2">(</span>mapy-mapvclip<span class="k2">)</span><span class="k3">-</span>mbgy<span class="k2">)</span><span class="k2">;</span>j<span class="k3">&lt;</span><span class="k2">(</span><span class="k2">(</span>mapy<span class="k3">+</span>maph<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>j<span class="k3">+</span><span class="k3">=</span>mapblockgapy<span class="k2">)</span>
<span class="number"> 36</span>  <span class="k2">{</span>
<span class="number"> 37</span>    <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="k2">(</span><span class="k2">(</span>mapx-maphclip<span class="k2">)</span><span class="k3">-</span>mbgx<span class="k2">)</span><span class="k2">;</span>i<span class="k3">&lt;</span><span class="k2">(</span><span class="k2">(</span>mapx<span class="k3">+</span>mapw<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">=</span>mapblockgapx<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><span class="k3">*</span>mymappt&gt;<span class="k3">=</span><span class="n">0</span><span class="k2">)</span> 
<span class="number"> 40</span>        blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR<span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 41</span>      <span class="k1">else</span>
<span class="number"> 42</span>      <span class="k2">{</span> 
<span class="number"> 43</span>        myanpt <span class="k3">=</span> mapanimstrendpt <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 44</span>        blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR <span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> mapanimseqpt<span class="k2">[</span>myanpt-&gt;ancuroff<span class="k2">]</span><span class="k2">;</span> 
<span class="number"> 45</span>      <span class="k2">}</span>
<span class="number"> 46</span>      <span class="k1">if</span> <span class="k2">(</span>mapblockstaggerx <span class="k3">|</span><span class="k3">|</span> mapblockstaggery<span class="k2">)</span> 
<span class="number"> 47</span>      <span class="k2">{</span>
<span class="number"> 48</span>      <span class="k1">if</span> <span class="k2">(</span>abmTiles<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">!</span><span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff<span class="k2">)</span>
<span class="number"> 49</span>        <span class="c">//masked_blit ((ALLEGRO_BITMAP *) blkdatapt-&gt;bgoff, mapdestpt, 0, 0, i, j, mapblockwidth, mapblockheight);</span>
<span class="number"> 50</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff,i,j,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">//size should be the same</span>
<span class="number"> 51</span>      <span class="k2">}</span> 
<span class="number"> 52</span>      <span class="k1">else</span> 
<span class="number"> 53</span>      <span class="k2">{</span>
<span class="number"> 54</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff,<span class="n">0</span>,<span class="n">0</span>,mapblockwidth,mapblockheight,i,j,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//blit ((BITMAP *) blkdatapt-&gt;bgoff, mapdestpt, 0, 0, i, j, mapblockwidth, mapblockheight);</span>
<span class="number"> 55</span>      <span class="k2">}</span>
<span class="number"> 56</span>      mymappt<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 57</span>    <span class="k2">}</span>
<span class="number"> 58</span>    <span class="k1">if</span> <span class="k2">(</span>mapblockstaggerx <span class="k3">|</span><span class="k3">|</span> mapblockstaggery<span class="k2">)</span> 
<span class="number"> 59</span>    <span class="k2">{</span>
<span class="number"> 60</span>      mymap2pt <span class="k3">+</span><span class="k3">=</span> mapwidth<span class="k2">;</span>
<span class="number"> 61</span>      mymappt <span class="k3">=</span> mymap2pt<span class="k2">;</span>
<span class="number"> 62</span>      <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>mapx-maphclip<span class="k2">)</span><span class="k3">-</span>mbgx<span class="k2">)</span><span class="k3">+</span>mapblockstaggerx<span class="k2">)</span><span class="k2">;</span>i<span class="k3">&lt;</span><span class="k2">(</span><span class="k2">(</span>mapx<span class="k3">+</span>mapw<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">=</span>mapblockgapx<span class="k2">)</span>
<span class="number"> 63</span>      <span class="k2">{</span>
<span class="number"> 64</span>        <span class="k1">if</span> <span class="k2">(</span><span class="k3">*</span>mymappt&gt;<span class="k3">=</span><span class="n">0</span><span class="k2">)</span> 
<span class="number"> 65</span>          blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR<span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 66</span>        <span class="k1">else</span> 
<span class="number"> 67</span>        <span class="k2">{</span> 
<span class="number"> 68</span>          myanpt <span class="k3">=</span> mapanimstrendpt <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 69</span>          blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR <span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> mapanimseqpt<span class="k2">[</span>myanpt-&gt;ancuroff<span class="k2">]</span><span class="k2">;</span> 
<span class="number"> 70</span>        <span class="k2">}</span>
<span class="number"> 71</span>        <span class="k1">if</span> <span class="k2">(</span>abmTiles<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">!</span><span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff<span class="k2">)</span>
<span class="number"> 72</span>          <span class="c">//masked_blit ((ALLEGRO_BITMAP *) blkdatapt-&gt;bgoff, mapdestpt, 0, 0, i, j+mapblockstaggery, mapblockwidth, mapblockheight);</span>
<span class="number"> 73</span>          <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff,i,j<span class="k3">+</span>mapblockstaggery,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">//size should be the same</span>
<span class="number"> 74</span>
<span class="number"> 75</span>        mymappt<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 76</span>      <span class="k2">}</span>
<span class="number"> 77</span>    <span class="k2">}</span>
<span class="number"> 78</span>    mymap2pt <span class="k3">+</span><span class="k3">=</span> mapwidth<span class="k2">;</span>
<span class="number"> 79</span>    mymappt <span class="k3">=</span> mymap2pt<span class="k2">;</span>
<span class="number"> 80</span>  <span class="k2">}</span>
<span class="number"> 81</span>  <a href="http://www.allegro.cc/manual/al_set_clipping_rectangle"><span class="a">al_set_clipping_rectangle</span></a><span class="k2">(</span>mycl,mycr,myct,mycb<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 82</span>  PopTargetDisplayAndBitmap<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 83</span><span class="k2">}</span>
</div></div><p>  </p><p>EDIT: hmmm... this bit of code doesn&#39;t seem to be where the &quot;cut&quot; is made rather what portion of the cut is shown. Also the setting transforms back to default brings up another problem that I&#39;m to avoid. And I&#39;m trying to use transforms to avoid that problem. </p><p>EDIT: Ok, I&#39;ve decided(and think it&#39;s safe to say), to make a new topic due to the fact that my problem is no longer with transformations but rather Mappy. </p><p>Thanks, <br />-Ryan
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ryancoboy)</author>
		<pubDate>Sat, 28 Jul 2012 10:30:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, it is a good idea not to display more of the map than you need to... it&#39;s just that you need to clip the map AND draw it untranslated. Try this, I suppose:</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="c">/* draw the background graphics on the current layer to the target bitmap, usually backbuffer */</span>
<span class="number">  2</span><span class="k1">void</span> MapDrawBG <span class="k2">(</span><span class="k1">int</span> mapxo, <span class="k1">int</span> mapyo, <span class="k1">int</span> mapx, <span class="k1">int</span> mapy,<span class="k1">int</span> mapw, <span class="k1">int</span> maph<span class="k2">)</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>  <span class="k1">int</span> i, j, mycl, mycr, myct, mycb, mapvclip, maphclip<span class="k2">;</span>
<span class="number">  5</span>  <span class="k1">int</span> mbgx, mbgy<span class="k2">;</span>
<span class="number">  6</span>  <span class="k1">short</span> <span class="k1">int</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number">  7</span>  <span class="k1">short</span> <span class="k1">int</span> <span class="k3">*</span>mymap2pt<span class="k2">;</span>
<span class="number">  8</span>  BLKSTR <span class="k3">*</span>blkdatapt<span class="k2">;</span>
<span class="number">  9</span>  ANISTR <span class="k3">*</span>myanpt<span class="k2">;</span>
<span class="number"> 10</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> mapdestpt<span class="k2">;</span>
<span class="number"> 11</span>
<span class="number"> 12</span>  mapdestpt<span class="k3">=</span>PushTargetDisplayAndBitmap<span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>  <a href="http://www.allegro.cc/manual/al_get_clipping_rectangle"><span class="a">al_get_clipping_rectangle</span></a><span class="k2">(</span><span class="k3">&amp;</span>mycl,<span class="k3">&amp;</span>mycr,<span class="k3">&amp;</span>myct,<span class="k3">&amp;</span>mycb<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>  <a href="http://www.allegro.cc/manual/al_set_clipping_rectangle"><span class="a">al_set_clipping_rectangle</span></a><span class="k2">(</span>mapx,mapy,mapw,maph<span class="k2">)</span><span class="k2">;</span><span class="c">//  set_clip (mapdestpt, mapx, mapy, mapx+mapw-1, mapy+maph-1);</span>
<span class="number"> 15</span>
<span class="number"> 16</span>  mapxo <span class="k3">-</span><span class="k3">=</span> mapblockstaggerx<span class="k2">;</span>
<span class="number"> 17</span>  mapyo <span class="k3">-</span><span class="k3">=</span> mapblockstaggery<span class="k2">;</span>
<span class="number"> 18</span>  mymappt <span class="k3">=</span> <span class="k2">(</span><span class="k1">short</span> <span class="k1">int</span> <span class="k3">*</span><span class="k2">)</span> mappt<span class="k2">;</span>
<span class="number"> 19</span>  <span class="k1">if</span> <span class="k2">(</span>mapblockstaggerx <span class="k3">|</span><span class="k3">|</span> mapblockstaggery<span class="k2">)</span> 
<span class="number"> 20</span>  <span class="k2">{</span>
<span class="number"> 21</span>    mymappt <span class="k3">+</span><span class="k3">=</span> <span class="k2">(</span>mapxo<span class="k3">/</span>mapblockgapx<span class="k2">)</span><span class="k3">+</span><span class="k2">(</span><span class="k2">(</span>mapyo<span class="k3">/</span>mapblockgapy<span class="k2">)</span><span class="k3">*</span>mapwidth<span class="k3">*</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>    mbgx <span class="k3">=</span> mapblockgapx<span class="k2">;</span>
<span class="number"> 23</span>    mbgy <span class="k3">=</span> mapblockgapy<span class="k2">;</span>
<span class="number"> 24</span>  <span class="k2">}</span>
<span class="number"> 25</span>  <span class="k1">else</span> 
<span class="number"> 26</span>  <span class="k2">{</span>
<span class="number"> 27</span>    mymappt <span class="k3">+</span><span class="k3">=</span> <span class="k2">(</span>mapxo<span class="k3">/</span>mapblockgapx<span class="k2">)</span><span class="k3">+</span><span class="k2">(</span><span class="k2">(</span>mapyo<span class="k3">/</span>mapblockgapy<span class="k2">)</span><span class="k3">*</span>mapwidth<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>    mbgx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 29</span>    mbgy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 30</span>  <span class="k2">}</span>
<span class="number"> 31</span>  mapvclip <span class="k3">=</span> mapyo%mapblockgapy<span class="k2">;</span>
<span class="number"> 32</span>  maphclip <span class="k3">=</span> mapxo%mapblockgapx<span class="k2">;</span>
<span class="number"> 33</span>
<span class="number"> 34</span>  mymap2pt <span class="k3">=</span> mymappt<span class="k2">;</span>
<span class="number"> 35</span>  <span class="k1">for</span> <span class="k2">(</span>j<span class="k3">=</span><span class="k2">(</span><span class="k2">(</span>mapy-mapvclip<span class="k2">)</span><span class="k3">-</span>mbgy<span class="k2">)</span><span class="k2">;</span>j<span class="k3">&lt;</span><span class="k2">(</span><span class="k2">(</span>mapy<span class="k3">+</span>maph<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>j<span class="k3">+</span><span class="k3">=</span>mapblockgapy<span class="k2">)</span>
<span class="number"> 36</span>  <span class="k2">{</span>
<span class="number"> 37</span>    <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="k2">(</span><span class="k2">(</span>mapx-maphclip<span class="k2">)</span><span class="k3">-</span>mbgx<span class="k2">)</span><span class="k2">;</span>i<span class="k3">&lt;</span><span class="k2">(</span><span class="k2">(</span>mapx<span class="k3">+</span>mapw<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">=</span>mapblockgapx<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><span class="k3">*</span>mymappt&gt;<span class="k3">=</span><span class="n">0</span><span class="k2">)</span> 
<span class="number"> 40</span>        blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR<span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 41</span>      <span class="k1">else</span>
<span class="number"> 42</span>      <span class="k2">{</span> 
<span class="number"> 43</span>        myanpt <span class="k3">=</span> mapanimstrendpt <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 44</span>        blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR <span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> mapanimseqpt<span class="k2">[</span>myanpt-&gt;ancuroff<span class="k2">]</span><span class="k2">;</span> 
<span class="number"> 45</span>      <span class="k2">}</span>
<span class="number"> 46</span>      <span class="k1">if</span> <span class="k2">(</span>mapblockstaggerx <span class="k3">|</span><span class="k3">|</span> mapblockstaggery<span class="k2">)</span> 
<span class="number"> 47</span>      <span class="k2">{</span>
<span class="number"> 48</span>      <span class="k1">if</span> <span class="k2">(</span>abmTiles<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">!</span><span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff<span class="k2">)</span>
<span class="number"> 49</span>        <span class="c">//masked_blit ((ALLEGRO_BITMAP *) blkdatapt-&gt;bgoff, mapdestpt, 0, 0, i, j, mapblockwidth, mapblockheight);</span>
<span class="number"> 50</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff,i <span class="k3">-</span> mapxo,j <span class="k3">-</span> mapyo,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">//size should be the same</span>
<span class="number"> 51</span>      <span class="k2">}</span> 
<span class="number"> 52</span>      <span class="k1">else</span> 
<span class="number"> 53</span>      <span class="k2">{</span>
<span class="number"> 54</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff,<span class="n">0</span>,<span class="n">0</span>,mapblockwidth,mapblockheight,i,j,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//blit ((BITMAP *) blkdatapt-&gt;bgoff, mapdestpt, 0, 0, i, j, mapblockwidth, mapblockheight);</span>
<span class="number"> 55</span>      <span class="k2">}</span>
<span class="number"> 56</span>      mymappt<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 57</span>    <span class="k2">}</span>
<span class="number"> 58</span>    <span class="k1">if</span> <span class="k2">(</span>mapblockstaggerx <span class="k3">|</span><span class="k3">|</span> mapblockstaggery<span class="k2">)</span> 
<span class="number"> 59</span>    <span class="k2">{</span>
<span class="number"> 60</span>      mymap2pt <span class="k3">+</span><span class="k3">=</span> mapwidth<span class="k2">;</span>
<span class="number"> 61</span>      mymappt <span class="k3">=</span> mymap2pt<span class="k2">;</span>
<span class="number"> 62</span>      <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>mapx-maphclip<span class="k2">)</span><span class="k3">-</span>mbgx<span class="k2">)</span><span class="k3">+</span>mapblockstaggerx<span class="k2">)</span><span class="k2">;</span>i<span class="k3">&lt;</span><span class="k2">(</span><span class="k2">(</span>mapx<span class="k3">+</span>mapw<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">=</span>mapblockgapx<span class="k2">)</span>
<span class="number"> 63</span>      <span class="k2">{</span>
<span class="number"> 64</span>        <span class="k1">if</span> <span class="k2">(</span><span class="k3">*</span>mymappt&gt;<span class="k3">=</span><span class="n">0</span><span class="k2">)</span> 
<span class="number"> 65</span>          blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR<span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 66</span>        <span class="k1">else</span> 
<span class="number"> 67</span>        <span class="k2">{</span> 
<span class="number"> 68</span>          myanpt <span class="k3">=</span> mapanimstrendpt <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 69</span>          blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR <span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> mapanimseqpt<span class="k2">[</span>myanpt-&gt;ancuroff<span class="k2">]</span><span class="k2">;</span> 
<span class="number"> 70</span>        <span class="k2">}</span>
<span class="number"> 71</span>        <span class="k1">if</span> <span class="k2">(</span>abmTiles<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">!</span><span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff<span class="k2">)</span>
<span class="number"> 72</span>          <span class="c">//masked_blit ((ALLEGRO_BITMAP *) blkdatapt-&gt;bgoff, mapdestpt, 0, 0, i, j+mapblockstaggery, mapblockwidth, mapblockheight);</span>
<span class="number"> 73</span>          <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff,i <span class="k3">-</span> mapxo,j<span class="k3">+</span>mapblockstaggery <span class="k3">-</span> mapyo,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">//size should be the same</span>
<span class="number"> 74</span>
<span class="number"> 75</span>        mymappt<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 76</span>      <span class="k2">}</span>
<span class="number"> 77</span>    <span class="k2">}</span>
<span class="number"> 78</span>    mymap2pt <span class="k3">+</span><span class="k3">=</span> mapwidth<span class="k2">;</span>
<span class="number"> 79</span>    mymappt <span class="k3">=</span> mymap2pt<span class="k2">;</span>
<span class="number"> 80</span>  <span class="k2">}</span>
<span class="number"> 81</span>  <a href="http://www.allegro.cc/manual/al_set_clipping_rectangle"><span class="a">al_set_clipping_rectangle</span></a><span class="k2">(</span>mycl,mycr,myct,mycb<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 82</span>  PopTargetDisplayAndBitmap<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 83</span><span class="k2">}</span>
</div></div><p>

(I changed the draw bitmap calls) and in your code change these lines:</p><div class="source-code snippet"><div class="inner"><pre>MapDrawBG<span class="k2">(</span>CamX, CamY, <span class="n">0</span>, <span class="n">0</span>, WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sat, 28 Jul 2012 12:42:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That is definitely a step in the right direction. when i walk around now i do see more of the map becoming visible. However, if i make my character go straight down or right he eventually passes up the map and is now walking in blackness. Essentially the map it being &quot;updated&quot; or &quot;redrawn&quot; to slowly, i think.</p><p>Thank you very much for all your help so far.</p><p>Thanks,<br />-Ryan
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ryancoboy)</author>
		<pubDate>Sat, 28 Jul 2012 13:06:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Looks like I missed one of the calls, change the <span class="source-code"><a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a></span> call in <span class="source-code">MapDrawBG</span> to this:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff,<span class="n">0</span>,<span class="n">0</span>,mapblockwidth,mapblockheight,i <span class="k3">-</span> mapxo,j <span class="k3">-</span> mapyo,<span class="n">0</span><span class="k2">)</span>
</pre></div></div><p>

If that doesn&#39;t work, then I think the best course of action is for you to post your entire code so someone (me) can try it out themselves... I really would rather not have to learn Mappy and make my own tiled game with a camera to fix this <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sat, 28 Jul 2012 22:15:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Still doesn&#39;t work. Here, I&#39;ve attached all of my code.</p><p>If worst does come to worst, I will just make my own tile engine. I just don&#39;t want to give up on mappy quite yet.</p><p>EDIT: Can&#39;t believe i didn&#39;t notice this before but when i changed my MapDrawBG code to <span class="source-code"> MapDrawBG<span class="k2">(</span>CamX,CamY,<span class="n">0</span>,<span class="n">0</span>,WIDTH,HEIGHT<span class="k2">)</span><span class="k2">;</span></span> My character now moves at, what seems like, double his normal intended speed. Thought might be good to know. I&#39;ll look further into that.</p><p>Thanks, <br />-Ryan
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ryancoboy)</author>
		<pubDate>Sun, 29 Jul 2012 01:28:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>MappyA5&#39;s code is really horrid and doesn&#39;t even compile on GCC. Whoever wrote that should be slapped. Anyway, here are two solutions... first one doesn&#39;t involve mucking around with the Mappy code, and the second one does. I still don&#39;t get why you just don&#39;t temporarily turn off transformations for just the map drawing <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> (that&#39;s what the first way does):</p><p>First way:
</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="c">//==============================================</span>
<span class="number">  2</span><span class="c">//RENDER</span>
<span class="number">  3</span><span class="c">//==============================================</span>
<span class="number">  4</span><span class="k1">if</span><span class="k2">(</span>render <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number">  5</span><span class="k2">{</span>
<span class="number">  6</span>  render <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  7</span>  
<span class="number">  8</span>  <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>  <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>  
<span class="number"> 11</span>  MapDrawBG<span class="k2">(</span>CamX, CamY,<span class="n">0</span>, <span class="n">0</span>, WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>  MapChangeLayer<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>  MapDrawBG<span class="k2">(</span>CamX, CamY, <span class="n">0</span>, <span class="n">0</span>, WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>  MapChangeLayer<span class="k2">(</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>  MapDrawBG<span class="k2">(</span>CamX, CamY, <span class="n">0</span>, <span class="n">0</span>, WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>  MapChangeLayer<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>  
<span class="number"> 18</span>  <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>  <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera, <span class="k3">-</span>CamX, <span class="k3">-</span>CamY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>  <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>
<span class="number"> 22</span>  DrawChara<span class="k2">(</span>Character<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>  
<span class="number"> 24</span>  <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>  <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>
<span class="number"> 27</span>  <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>font18, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">5</span>, <span class="n">5</span>, <span class="n">0</span>, <span class="s">"FPS: %i"</span>, gameFPS<span class="k2">)</span><span class="k2">;</span>  <span class="c">//display FPS on screen</span>
<span class="number"> 28</span>
<span class="number"> 29</span>  <span class="c">//FLIP BUFFERS========================</span>
<span class="number"> 30</span>  <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span><span class="k2">}</span>
</div></div><p>

Second way, replace the MapDrawBG with this code:</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="c">/* draw the background graphics on the current layer to the target bitmap, usually backbuffer */</span>
<span class="number">  2</span><span class="k1">void</span> MapDrawBG <span class="k2">(</span><span class="k1">int</span> mapxo, <span class="k1">int</span> mapyo, <span class="k1">int</span> mapx, <span class="k1">int</span> mapy,<span class="k1">int</span> mapw, <span class="k1">int</span> maph<span class="k2">)</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>  <span class="k1">int</span> i, j, mycl, mycr, myct, mycb, mapvclip, maphclip<span class="k2">;</span>
<span class="number">  5</span>  <span class="k1">int</span> mbgx, mbgy<span class="k2">;</span>
<span class="number">  6</span>  <span class="k1">short</span> <span class="k1">int</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number">  7</span>  <span class="k1">short</span> <span class="k1">int</span> <span class="k3">*</span>mymap2pt<span class="k2">;</span>
<span class="number">  8</span>  BLKSTR <span class="k3">*</span>blkdatapt<span class="k2">;</span>
<span class="number">  9</span>  ANISTR <span class="k3">*</span>myanpt<span class="k2">;</span>
<span class="number"> 10</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> mapdestpt<span class="k2">;</span>
<span class="number"> 11</span>  <span class="k1">int</span> real_mapxo <span class="k3">=</span> mapxo<span class="k2">;</span>
<span class="number"> 12</span>  <span class="k1">int</span> real_mapyo <span class="k3">=</span> mapyo<span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span>  mapdestpt<span class="k3">=</span>PushTargetDisplayAndBitmap<span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>  <a href="http://www.allegro.cc/manual/al_get_clipping_rectangle"><span class="a">al_get_clipping_rectangle</span></a><span class="k2">(</span><span class="k3">&amp;</span>mycl,<span class="k3">&amp;</span>mycr,<span class="k3">&amp;</span>myct,<span class="k3">&amp;</span>mycb<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>  <a href="http://www.allegro.cc/manual/al_set_clipping_rectangle"><span class="a">al_set_clipping_rectangle</span></a><span class="k2">(</span>mapx,mapy,mapw,maph<span class="k2">)</span><span class="k2">;</span><span class="c">//  set_clip (mapdestpt, mapx, mapy, mapx+mapw-1, mapy+maph-1);</span>
<span class="number"> 17</span>
<span class="number"> 18</span>  mapxo <span class="k3">-</span><span class="k3">=</span> mapblockstaggerx<span class="k2">;</span>
<span class="number"> 19</span>  mapyo <span class="k3">-</span><span class="k3">=</span> mapblockstaggery<span class="k2">;</span>
<span class="number"> 20</span>  mymappt <span class="k3">=</span> <span class="k2">(</span><span class="k1">short</span> <span class="k1">int</span> <span class="k3">*</span><span class="k2">)</span> mappt<span class="k2">;</span>
<span class="number"> 21</span>  <span class="k1">if</span> <span class="k2">(</span>mapblockstaggerx <span class="k3">|</span><span class="k3">|</span> mapblockstaggery<span class="k2">)</span> 
<span class="number"> 22</span>  <span class="k2">{</span>
<span class="number"> 23</span>    mymappt <span class="k3">+</span><span class="k3">=</span> <span class="k2">(</span>mapxo<span class="k3">/</span>mapblockgapx<span class="k2">)</span><span class="k3">+</span><span class="k2">(</span><span class="k2">(</span>mapyo<span class="k3">/</span>mapblockgapy<span class="k2">)</span><span class="k3">*</span>mapwidth<span class="k3">*</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>    mbgx <span class="k3">=</span> mapblockgapx<span class="k2">;</span>
<span class="number"> 25</span>    mbgy <span class="k3">=</span> mapblockgapy<span class="k2">;</span>
<span class="number"> 26</span>  <span class="k2">}</span>
<span class="number"> 27</span>  <span class="k1">else</span> 
<span class="number"> 28</span>  <span class="k2">{</span>
<span class="number"> 29</span>    mymappt <span class="k3">+</span><span class="k3">=</span> <span class="k2">(</span>mapxo<span class="k3">/</span>mapblockgapx<span class="k2">)</span><span class="k3">+</span><span class="k2">(</span><span class="k2">(</span>mapyo<span class="k3">/</span>mapblockgapy<span class="k2">)</span><span class="k3">*</span>mapwidth<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>    mbgx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 31</span>    mbgy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 32</span>  <span class="k2">}</span>
<span class="number"> 33</span>  mapvclip <span class="k3">=</span> mapyo%mapblockgapy<span class="k2">;</span>
<span class="number"> 34</span>  maphclip <span class="k3">=</span> mapxo%mapblockgapx<span class="k2">;</span>
<span class="number"> 35</span>
<span class="number"> 36</span>  mymap2pt <span class="k3">=</span> mymappt<span class="k2">;</span>
<span class="number"> 37</span>  <span class="k1">for</span> <span class="k2">(</span>j<span class="k3">=</span><span class="k2">(</span><span class="k2">(</span>mapy-mapvclip<span class="k2">)</span><span class="k3">-</span>mbgy<span class="k2">)</span> <span class="k3">+</span> real_mapyo<span class="k2">;</span>j<span class="k3">&lt;</span><span class="k2">(</span><span class="k2">(</span>mapy<span class="k3">+</span>maph<span class="k2">)</span><span class="k2">)</span> <span class="k3">+</span> real_mapyo<span class="k2">;</span>j<span class="k3">+</span><span class="k3">=</span>mapblockgapy<span class="k2">)</span>
<span class="number"> 38</span>  <span class="k2">{</span>
<span class="number"> 39</span>    <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="k2">(</span><span class="k2">(</span>mapx-maphclip<span class="k2">)</span><span class="k3">-</span>mbgx<span class="k2">)</span> <span class="k3">+</span> real_mapxo<span class="k2">;</span>i<span class="k3">&lt;</span><span class="k2">(</span><span class="k2">(</span>mapx<span class="k3">+</span>mapw<span class="k2">)</span><span class="k2">)</span> <span class="k3">+</span> real_mapxo<span class="k2">;</span>i<span class="k3">+</span><span class="k3">=</span>mapblockgapx<span class="k2">)</span> 
<span class="number"> 40</span>    <span class="k2">{</span>
<span class="number"> 41</span>      <span class="k1">if</span> <span class="k2">(</span><span class="k3">*</span>mymappt&gt;<span class="k3">=</span><span class="n">0</span><span class="k2">)</span> 
<span class="number"> 42</span>        blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR<span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 43</span>      <span class="k1">else</span>
<span class="number"> 44</span>      <span class="k2">{</span> 
<span class="number"> 45</span>        myanpt <span class="k3">=</span> mapanimstrendpt <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 46</span>        blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR <span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> mapanimseqpt<span class="k2">[</span>myanpt-&gt;ancuroff<span class="k2">]</span><span class="k2">;</span> 
<span class="number"> 47</span>      <span class="k2">}</span>
<span class="number"> 48</span>      <span class="k1">if</span> <span class="k2">(</span>mapblockstaggerx <span class="k3">|</span><span class="k3">|</span> mapblockstaggery<span class="k2">)</span> 
<span class="number"> 49</span>      <span class="k2">{</span>
<span class="number"> 50</span>      <span class="k1">if</span> <span class="k2">(</span>abmTiles<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">!</span><span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff<span class="k2">)</span>
<span class="number"> 51</span>        <span class="c">//masked_blit ((ALLEGRO_BITMAP *) blkdatapt-&gt;bgoff, mapdestpt, 0, 0, i, j, mapblockwidth, mapblockheight);</span>
<span class="number"> 52</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff,i,j,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">//size should be the same</span>
<span class="number"> 53</span>      <span class="k2">}</span> 
<span class="number"> 54</span>      <span class="k1">else</span> 
<span class="number"> 55</span>      <span class="k2">{</span>
<span class="number"> 56</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff,<span class="n">0</span>,<span class="n">0</span>,mapblockwidth,mapblockheight,i,j,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//al_draw_bitmap_region((ALLEGRO_BITMAP *) blkdatapt-&gt;bgoff,0,0,mapblockwidth,mapblockheight,i,j,0); //blit ((BITMAP *) blkdatapt-&gt;bgoff, mapdestpt, 0, 0, i, j, mapblockwidth, mapblockheight);</span>
<span class="number"> 57</span>      <span class="k2">}</span>
<span class="number"> 58</span>      mymappt<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 59</span>    <span class="k2">}</span>
<span class="number"> 60</span>    <span class="k1">if</span> <span class="k2">(</span>mapblockstaggerx <span class="k3">|</span><span class="k3">|</span> mapblockstaggery<span class="k2">)</span> 
<span class="number"> 61</span>    <span class="k2">{</span>
<span class="number"> 62</span>      mymap2pt <span class="k3">+</span><span class="k3">=</span> mapwidth<span class="k2">;</span>
<span class="number"> 63</span>      mymappt <span class="k3">=</span> mymap2pt<span class="k2">;</span>
<span class="number"> 64</span>      <span class="k1">for</span> <span class="k2">(</span>i<span class="k3">=</span><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>mapx-maphclip<span class="k2">)</span><span class="k3">-</span>mbgx<span class="k2">)</span><span class="k3">+</span>mapblockstaggerx<span class="k2">)</span><span class="k2">;</span>i<span class="k3">&lt;</span><span class="k2">(</span><span class="k2">(</span>mapx<span class="k3">+</span>mapw<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>i<span class="k3">+</span><span class="k3">=</span>mapblockgapx<span class="k2">)</span>
<span class="number"> 65</span>      <span class="k2">{</span>
<span class="number"> 66</span>        <span class="k1">if</span> <span class="k2">(</span><span class="k3">*</span>mymappt&gt;<span class="k3">=</span><span class="n">0</span><span class="k2">)</span> 
<span class="number"> 67</span>          blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR<span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 68</span>        <span class="k1">else</span> 
<span class="number"> 69</span>        <span class="k2">{</span> 
<span class="number"> 70</span>          myanpt <span class="k3">=</span> mapanimstrendpt <span class="k3">+</span> <span class="k3">*</span>mymappt<span class="k2">;</span>
<span class="number"> 71</span>          blkdatapt <span class="k3">=</span> <span class="k2">(</span><span class="k2">(</span>BLKSTR <span class="k3">*</span><span class="k2">)</span> mapblockstrpt<span class="k2">)</span> <span class="k3">+</span> mapanimseqpt<span class="k2">[</span>myanpt-&gt;ancuroff<span class="k2">]</span><span class="k2">;</span> 
<span class="number"> 72</span>        <span class="k2">}</span>
<span class="number"> 73</span>        <span class="k1">if</span> <span class="k2">(</span>abmTiles<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">!</span><span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff<span class="k2">)</span>
<span class="number"> 74</span>          <span class="c">//masked_blit ((ALLEGRO_BITMAP *) blkdatapt-&gt;bgoff, mapdestpt, 0, 0, i, j+mapblockstaggery, mapblockwidth, mapblockheight);</span>
<span class="number"> 75</span>          <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span> blkdatapt-&gt;bgoff,i,j<span class="k3">+</span>mapblockstaggery,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">//size should be the same</span>
<span class="number"> 76</span>
<span class="number"> 77</span>        mymappt<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 78</span>      <span class="k2">}</span>
<span class="number"> 79</span>    <span class="k2">}</span>
<span class="number"> 80</span>    mymap2pt <span class="k3">+</span><span class="k3">=</span> mapwidth<span class="k2">;</span>
<span class="number"> 81</span>    mymappt <span class="k3">=</span> mymap2pt<span class="k2">;</span>
<span class="number"> 82</span>  <span class="k2">}</span>
<span class="number"> 83</span>  <a href="http://www.allegro.cc/manual/al_set_clipping_rectangle"><span class="a">al_set_clipping_rectangle</span></a><span class="k2">(</span>mycl,mycr,myct,mycb<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 84</span>  PopTargetDisplayAndBitmap<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 85</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sun, 29 Jul 2012 03:32:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>For whatever reason, your fist method was not working for me when i tried it. But now it works perfectly. i must have not reset something of made some logic error somewhere but your first method works like a charm now. Thank you very much for showing me this method again.  </p><p>Also your second method works. And it works better in terms of performance. in the first method my FPS occasionally would drop to 50-59 FPS. the second method made my FPS drop down to 59 a couple of times. So, I&#39;ll probably stick to this method. </p><p>Again, Thank you very much. Your time and efforts are most appreciated. Time to go look over what you changed and study it.</p><p>Thanks,<br />-Ryan
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ryancoboy)</author>
		<pubDate>Sun, 29 Jul 2012 04:01:50 +0000</pubDate>
	</item>
</rss>
