<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://www.tt-wiki.net/index.php?action=history&amp;feed=atom&amp;title=NMLTutorial%2F32_bit_base_graphics</id>
	<title>NMLTutorial/32 bit base graphics - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.tt-wiki.net/index.php?action=history&amp;feed=atom&amp;title=NMLTutorial%2F32_bit_base_graphics"/>
	<link rel="alternate" type="text/html" href="https://www.tt-wiki.net/index.php?title=NMLTutorial/32_bit_base_graphics&amp;action=history"/>
	<updated>2026-05-02T03:17:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://www.tt-wiki.net/index.php?title=NMLTutorial/32_bit_base_graphics&amp;diff=8454&amp;oldid=prev</id>
		<title>FooBar: complete page</title>
		<link rel="alternate" type="text/html" href="https://www.tt-wiki.net/index.php?title=NMLTutorial/32_bit_base_graphics&amp;diff=8454&amp;oldid=prev"/>
		<updated>2012-06-27T12:07:15Z</updated>

		<summary type="html">&lt;p&gt;complete page&lt;/p&gt;
&lt;a href=&quot;https://www.tt-wiki.net/index.php?title=NMLTutorial/32_bit_base_graphics&amp;amp;diff=8454&amp;amp;oldid=8453&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>FooBar</name></author>
	</entry>
	<entry>
		<id>https://www.tt-wiki.net/index.php?title=NMLTutorial/32_bit_base_graphics&amp;diff=8453&amp;oldid=prev</id>
		<title>FooBar: intermediate save</title>
		<link rel="alternate" type="text/html" href="https://www.tt-wiki.net/index.php?title=NMLTutorial/32_bit_base_graphics&amp;diff=8453&amp;oldid=prev"/>
		<updated>2012-06-27T11:44:42Z</updated>

		<summary type="html">&lt;p&gt;intermediate save&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NMLTutorial}}&lt;br /&gt;
&lt;br /&gt;
In this example we&amp;#039;ll look into a small base graphics replacement, for both 8 bit and 32 bit graphics. We&amp;#039;ll be replacing some level crossings in temperate and actic climate.&lt;br /&gt;
&lt;br /&gt;
== Example graphics ==&lt;br /&gt;
There will be three sets of graphics: regular 8 bit sprites, 32 bit sprites for the normal zoom level and an accompanying mask file. These graphics will be replacing sprites [[:File:Ogfx1_base.png|1370 to 1373]]. The sprites for the arctic climate will occupy the same slots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are the 8 bit sprites. Note that they&amp;#039;re neatly ordered, so that we can use a template later on.&lt;br /&gt;
[[File:Levelcrossings8.png|frame|none|levelcrossings8.png - Level crossing sprites in open and closed state, for two climates. 8 bit.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The 32 bit sprites are very similar, but with a transparent instead of blue background. The pink bits are just to indicate the sprite borders.&lt;br /&gt;
[[File:Levelcrossings32.png|frame|none|levelcrossings32.png - Level crossing sprites in open and closed state, for two climates. 32 bit.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to get animation for the crossing lights with the 32 bit version, we need an additional mask file. This mask just contains the crossing lights in the exact positions as in the 32 bit file. This is an 8 bit file, so we have to use the blue background to indicate transparency.&lt;br /&gt;
[[File:Levelcrossingsmask.png|frame|none|levelcrossingsmask.png - Mask file for 32 bit sprites. 8 bit.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Replace ==&lt;br /&gt;
Let&amp;#039;s start with the replace blocks for the 8 bit sprites. We&amp;#039;ll add the 32 bit sprites later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
replace replace_levelcrossings_temperate(1370, &amp;quot;gfx/levelcrossings.png&amp;quot;) {&lt;br /&gt;
    //realsprites go here&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We&amp;#039;ve chosen the identifier &amp;lt;code&amp;gt;replace_levelcrossings_temperate&amp;lt;/code&amp;gt;. It&amp;#039;s not mandatory for 8 bit sprites alone, but we need it if we want to attach 32 bit sprites later. So why not add it straight away, right? The &amp;lt;code&amp;gt;1370&amp;lt;/code&amp;gt; is the sprite number of the first sprite we want to replace.&lt;br /&gt;
&lt;br /&gt;
=== Template ===&lt;br /&gt;
As stated before, we want to template these sprites. There are four sprites for each climate, all with the same offsets because all sprite boxes are the same size, so the template will be pretty straightforward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
template template_levelcrossing(x, y) {&lt;br /&gt;
    //[left_x, upper_y, width, height, offset_x, offset_y]&lt;br /&gt;
    [x    , y, 64, 42, -31, -11]&lt;br /&gt;
    [x+80 , y, 64, 42, -31, -11]&lt;br /&gt;
    [x+160, y, 64, 42, -31, -11]&lt;br /&gt;
    [x+240, y, 64, 42, -31, -11]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The x and y position are variable in the template, because we have the sprites for both climates in one file. Now it&amp;#039;s just a matter of referencing our template inside the &amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; block and filling in the correct position of the top left pixel of the first sprite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
replace replace_levelcrossings_temperate(1370, &amp;quot;gfx/levelcrossings.png&amp;quot;) {&lt;br /&gt;
    template_levelcrossing(0, 0)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Other climate ===&lt;br /&gt;
The procedure for the actic climate will be identical, but we need to select the correct sprites depending on the selected climate. This means guarding the two &amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; blocks with &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;-statements. Let&amp;#039;s look at those &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;-statements first:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
if (climate == CLIMATE_TEMPERATE) {&lt;br /&gt;
    replace replace_levelcrossings_temperate(1370, &amp;quot;gfx/levelcrossings.png&amp;quot;) {&lt;br /&gt;
        template_levelcrossing(0, 0)&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
if (climate == CLIMATE_ARCTIC) {&lt;br /&gt;
    replace replace_levelcrossings_arctic(1370, &amp;quot;gfx/levelcrossings.png&amp;quot;) {&lt;br /&gt;
        template_levelcrossing(0, 320)&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may use an &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; in front of the second if block, but that&amp;#039;s not really necessary in this case. From here it&amp;#039;s just a matter of adding the &amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; block for the temperate climate and writing a similar one for the arctic climate. The one for the arctic climate will of course get a different identifier and different template parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
if (climate == CLIMATE_TEMPERATE) {&lt;br /&gt;
    //replace block for temperate to go here&lt;br /&gt;
}&lt;br /&gt;
if (climate == CLIMATE_ARCTIC) {&lt;br /&gt;
    //replace block for temperate to go here&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is actually all there is to it, if you just want 8 bit sprites. We&amp;#039;ll leave adding a &amp;lt;code&amp;gt;grf&amp;lt;/code&amp;gt; block and the language file over to you. It&amp;#039;s no different than for the [[NMLTutorial/Road vehicle|road vehicle]].&lt;br /&gt;
&lt;br /&gt;
== 32 bit graphics ==&lt;br /&gt;
&lt;br /&gt;
To define our 32 bit sprites, we have to define an &amp;lt;code&amp;gt;alternative_sprites&amp;lt;/code&amp;gt; block to go with each of the spriteset blocks. The identifiers will be the same, we&amp;#039;ll indicate that we have normal zoom sprites via &amp;lt;code&amp;gt;ZOOM_LEVEL_NORMAL&amp;lt;/code&amp;gt; and that the sprites are 32 bit via &amp;lt;code&amp;gt;BIT_DEPTH_32BPP&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We&amp;#039;ll also reference the new graphics files. As the 32 bit sprites and the mask sprites belong together, they go together in in the same &amp;lt;code&amp;gt;alternative_sprites&amp;lt;/code&amp;gt; block. Let&amp;#039;s look at the first line of that block:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_empty, ZOOM_LEVEL_NORMAL, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The positions, sizes and offsets of 32 bit sprites are incidentally the same as for the 8 bit sprites. Coincidence? Of course not, this will just save us a lot of trouble, as now we can simply copy these from the 8 bit sprites. This will give us the following &amp;lt;code&amp;gt;alternative_sprites&amp;lt;/code&amp;gt; block for the first set of sprites:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_empty, ZOOM_LEVEL_NORMAL, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
    //left_x, upper_y, width, height, offset_x, offset_y&lt;br /&gt;
    [ 0,      0,        8,    18,      -3,       -10]&lt;br /&gt;
    [ 16,     0,       20,    16,     -14,        -7]&lt;br /&gt;
    [ 48,     0,       28,    12,     -14,        -6]&lt;br /&gt;
    [ 96,     0,       20,    16,      -6,        -7]&lt;br /&gt;
    [ 128,    0,        8,    18,      -3,       -10]&lt;br /&gt;
    [ 144,    0,       20,    16,     -14,        -7]&lt;br /&gt;
    [ 176,    0,       28,    12,     -14,        -6]&lt;br /&gt;
    [ 224,    0,       20,    16,      -6,        -7]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is good practice to place the &amp;lt;code&amp;gt;alternative_sprites&amp;lt;/code&amp;gt; block right after the &amp;lt;code&amp;gt;spriteset&amp;lt;/code&amp;gt; block it belongs to. Let&amp;#039;s do that and at the same time fill in the other &amp;lt;code&amp;gt;alternative_sprites&amp;lt;/code&amp;gt; block.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
//graphics definition&lt;br /&gt;
spriteset(spriteset_flatbed_truck_1_goods_empty, &amp;quot;gfx/flatbed_truck_1_goods.png&amp;quot;) {&lt;br /&gt;
    //left_x, upper_y, width, height, offset_x, offset_y&lt;br /&gt;
    [ 0,      0,        8,    18,      -3,       -10]&lt;br /&gt;
    [ 16,     0,       20,    16,     -14,        -7]&lt;br /&gt;
    [ 48,     0,       28,    12,     -14,        -6]&lt;br /&gt;
    [ 96,     0,       20,    16,      -6,        -7]&lt;br /&gt;
    [ 128,    0,        8,    18,      -3,       -10]&lt;br /&gt;
    [ 144,    0,       20,    16,     -14,        -7]&lt;br /&gt;
    [ 176,    0,       28,    12,     -14,        -6]&lt;br /&gt;
    [ 224,    0,       20,    16,      -6,        -7]&lt;br /&gt;
}&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_empty, ZOOM_LEVEL_NORMAL, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
    //left_x, upper_y, width, height, offset_x, offset_y&lt;br /&gt;
    [ 0,      0,        8,    18,      -3,       -10]&lt;br /&gt;
    [ 16,     0,       20,    16,     -14,        -7]&lt;br /&gt;
    [ 48,     0,       28,    12,     -14,        -6]&lt;br /&gt;
    [ 96,     0,       20,    16,      -6,        -7]&lt;br /&gt;
    [ 128,    0,        8,    18,      -3,       -10]&lt;br /&gt;
    [ 144,    0,       20,    16,     -14,        -7]&lt;br /&gt;
    [ 176,    0,       28,    12,     -14,        -6]&lt;br /&gt;
    [ 224,    0,       20,    16,      -6,        -7]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spriteset(spriteset_flatbed_truck_1_goods_full, &amp;quot;gfx/flatbed_truck_1_goods.png&amp;quot;) {&lt;br /&gt;
    //left_x, upper_y, width, height, offset_x, offset_y&lt;br /&gt;
    [ 260,    0,        8,    18,      -3,      -10]&lt;br /&gt;
    [ 276,    0,       20,    16,     -14,       -7]&lt;br /&gt;
    [ 308,    0,       28,    12,     -14,       -6]&lt;br /&gt;
    [ 356,    0,       20,    16,      -6,       -7]&lt;br /&gt;
    [ 388,    0,        8,    18,      -3,      -10]&lt;br /&gt;
    [ 404,    0,       20,    16,     -14,       -7]&lt;br /&gt;
    [ 436,    0,       28,    12,     -14,       -6]&lt;br /&gt;
    [ 484,    0,       20,    16,      -6,       -7]&lt;br /&gt;
}&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_full, ZOOM_LEVEL_NORMAL, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
    //left_x, upper_y, width, height, offset_x, offset_y&lt;br /&gt;
    [ 260,    0,        8,    18,      -3,      -10]&lt;br /&gt;
    [ 276,    0,       20,    16,     -14,       -7]&lt;br /&gt;
    [ 308,    0,       28,    12,     -14,       -6]&lt;br /&gt;
    [ 356,    0,       20,    16,      -6,       -7]&lt;br /&gt;
    [ 388,    0,        8,    18,      -3,      -10]&lt;br /&gt;
    [ 404,    0,       20,    16,     -14,       -7]&lt;br /&gt;
    [ 436,    0,       28,    12,     -14,       -6]&lt;br /&gt;
    [ 484,    0,       20,    16,      -6,       -7]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And that&amp;#039;s really all there is to defining 32 bit sprites!&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
Can we also template 32 bit graphics, I hear you ask? Well certainly, they&amp;#039;re no different than 8 bit sprites in that respect. Let&amp;#039;s go back to where we&amp;#039;ve [[NMLTutorial/Road_vehicle_graphics_template|templated our example road vehicle]]. Because we were smart enough to keep the same positions, sizes and offsets for both our 8 bit and 32 bit sprites, we can simply use the same template we made earlier. This template was called &amp;lt;code&amp;gt;tmpl_truck&amp;lt;/code&amp;gt; and has template parameters for the top left position of the first of eight sprites.&lt;br /&gt;
&lt;br /&gt;
When first using this template, we simply replaced all the numbers inside the spriteset blocks with a call to the template, and ended up with this:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
//graphics definition&lt;br /&gt;
spriteset(spriteset_flatbed_truck_1_goods_empty, &amp;quot;gfx/flatbed_truck_1_goods.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck(0, 0)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spriteset(spriteset_flatbed_truck_1_goods_full, &amp;quot;gfx/flatbed_truck_1_goods.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck(260, 0)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For our &amp;lt;code&amp;gt;alternative_sprites&amp;lt;/code&amp;gt; blocks we can do the same, there&amp;#039;s really nothing to it:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
//graphics definition&lt;br /&gt;
spriteset(spriteset_flatbed_truck_1_goods_empty, &amp;quot;gfx/flatbed_truck_1_goods.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck(0, 0)&lt;br /&gt;
}&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_empty, ZOOM_LEVEL_NORMAL, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck(0, 0)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spriteset(spriteset_flatbed_truck_1_goods_full, &amp;quot;gfx/flatbed_truck_1_goods.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck(260, 0)&lt;br /&gt;
}&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_full, ZOOM_LEVEL_NORMAL, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck(260, 0)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So the first line of the blocks remains the same, we just replace the content with the template call.&lt;br /&gt;
&lt;br /&gt;
== Other zoom levels ==&lt;br /&gt;
For each additional zoom level, you simply add additional &amp;lt;code&amp;gt;alternative_sprites&amp;lt;/code&amp;gt; blocks. Because of the different sprite sizes and offsets, you do have to create an additional template for each additional zoom level. If you order the sprites in a standardized way in your png files, you can keep reusing templates as we&amp;#039;ve done before.&lt;br /&gt;
&lt;br /&gt;
Let&amp;#039;s assume we have 32 bit graphics for the 4x zoom in level. The &amp;lt;code&amp;gt;alternative_sprites&amp;lt;/code&amp;gt; for these sprites will be similar, but you specify the different zoom level (in this case) via &amp;lt;code&amp;gt;ZOOM_LEVEL_IN_4X&amp;lt;/code&amp;gt; and reference the template you have made for sprites of this zoom level. For the first set of sprites you then get this additional &amp;lt;code&amp;gt;alternative_sprites&amp;lt;/code&amp;gt; block:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_empty, ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck_zi4(0, 0)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the total set of blocks:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:darkblue; white-space: pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
//graphics definition&lt;br /&gt;
spriteset(spriteset_flatbed_truck_1_goods_empty, &amp;quot;gfx/flatbed_truck_1_goods.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck(0, 0)&lt;br /&gt;
}&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_empty, ZOOM_LEVEL_NORMAL, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck(0, 0)&lt;br /&gt;
}&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_empty, ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck_zi4(0, 0)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spriteset(spriteset_flatbed_truck_1_goods_full, &amp;quot;gfx/flatbed_truck_1_goods.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck(260, 0)&lt;br /&gt;
}&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_full, ZOOM_LEVEL_NORMAL, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck(260, 0)&lt;br /&gt;
}&lt;br /&gt;
alternative_sprites(spriteset_flatbed_truck_1_goods_full, ZOOM_LEVEL_IN_4X, BIT_DEPTH_32BPP, &amp;quot;flatbed_truck_1_goods_32.png&amp;quot;, &amp;quot;flatbed_truck_1_goods_mask.png&amp;quot;) {&lt;br /&gt;
    tmpl_truck_zi4(260, 0)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And with that we conclude this example and in fact the whole series! Feel free to read the conclusion. Or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{NMLTutorialNavbar|Base graphics replacement|Conclusion}}&lt;/div&gt;</summary>
		<author><name>FooBar</name></author>
	</entry>
</feed>