Difference between revisions of "NML:Alternative sprites"

From GRFSpecs
Jump to navigationJump to search
(adjust description somewhat towards current syntax)
m (case matters. and 1X is NORMAL)
Line 11: Line 11:
 
!name !! tile size !! description
 
!name !! tile size !! description
 
|-
 
|-
|<code style="color:darkgreen">ZOOM_LEVEL_IN_4x</code> || 256 x 127 || 4x zoom in
+
|<code style="color:darkgreen">ZOOM_LEVEL_IN_4X</code> || 256 x 127 || 4x zoom in
 
|-
 
|-
|<code style="color:darkgreen">ZOOM_LEVEL_IN_2x</code> || 128 x 63 || 2x zoom in
+
|<code style="color:darkgreen">ZOOM_LEVEL_IN_2X</code> || 128 x 63 || 2x zoom in
 
|-
 
|-
|<code style="color:darkgreen">ZOOM_LEVEL_IN_1x</code> || 64 x 31 || normal tile size
+
|<code style="color:darkgreen">ZOOM_LEVEL_NORMAL</code> || 64 x 31 || normal tile size
 
|-
 
|-
|<code style="color:darkgreen">ZOOM_LEVEL_OUT_2x</code> || 32 x 15 || 2x zoom out
+
|<code style="color:darkgreen">ZOOM_LEVEL_OUT_2X</code> || 32 x 15 || 2x zoom out
 
|-
 
|-
|<code style="color:darkgreen">ZOOM_LEVEL_OUT_4x</code> || 16 x 7 || 4x zoom out
+
|<code style="color:darkgreen">ZOOM_LEVEL_OUT_4X</code> || 16 x 7 || 4x zoom out
 
|-
 
|-
|<code style="color:darkgreen">ZOOM_LEVEL_OUT_8x</code> || 8 x 3 || 8x zoom out
+
|<code style="color:darkgreen">ZOOM_LEVEL_OUT_8X</code> || 8 x 3 || 8x zoom out
 
|}
 
|}
   

Revision as of 18:50, 29 February 2012

Block Syntax

A alternative_sprites block allows you to specify alternative sprites (zoom levels and / or 32bpp) that are drop-in replacements for some real sprites in your grf. The syntax is as follows:

alternative_sprites(block_name, zoom_level, type[, filename]) {
	list of realsprites
}

block_name is the name of the replace/replace_new/fontglyph/spriteset-block for which you want to provide alternative sprites. zoom_level can be

name tile size description
ZOOM_LEVEL_IN_4X 256 x 127 4x zoom in
ZOOM_LEVEL_IN_2X 128 x 63 2x zoom in
ZOOM_LEVEL_NORMAL 64 x 31 normal tile size
ZOOM_LEVEL_OUT_2X 32 x 15 2x zoom out
ZOOM_LEVEL_OUT_4X 16 x 7 4x zoom out
ZOOM_LEVEL_OUT_8X 8 x 3 8x zoom out

The type argument specifies which kind of sprite follows. This may be either BIT_DEPTH_8BPP or BIT_DEPTH_32bpp.

Specifying a filename is optional, it's only useful if you have multiple sprites in the same file. If every sprite is in a separate file you'll have to specify the filename for each realsprite anyway, so you can leave it out of the alternative_sprites-block.

An example for an implementation

 // Foster Express tram
 spriteset(foster_express_set, "opengfx_generic_trams1.pcx") {
   [ 48,56,  8,18,   -3,-10]
   [ 64,56, 20,19,  -14, -5]
   [ 96,56, 28,15,  -14, -8]
   [144,56, 20,19,   -6, -7]
   [176,56,  8,18,   -3,-10]
   [192,56, 20,19,  -14, -9]
   [224,56, 28,15,  -14, -8]
   [272,56, 20,19,   -6, -7]
 }
 
 alternative_sprites(foster_express_set, ZOOM_LEVEL_IN_2X, BIT_DEPTH_8BPP, "opengfx_generic_trams1.pcx") {
   [ 48,56,  8,18,   -3,-10]
   [ 64,56, 20,19,  -14, -5]
   [ 96,56, 28,15,  -14, -8]
   [144,56, 20,19,   -6, -7]
   [176,56,  8,18,   -3,-10]
   [192,56, 20,19,  -14, -9]
   [224,56, 28,15,  -14, -8]
   [272,56, 20,19,   -6, -7]
 }
 
 alternative_sprites(foster_express_set, ZOOM_LEVEL_NORMAL, BIT_DEPTH_32BPP, "opengfx_generic_trams1.png") {
   [ 48,56,  8,18,   -3,-10]
   [ 64,56, 20,19,  -14, -5]
   [ 96,56, 28,15,  -14, -8]
   [144,56, 20,19,   -6, -7]
   [176,56,  8,18,   -3,-10]
   [192,56, 20,19,  -14, -9]
   [224,56, 28,15,  -14, -8]
   [272,56, 20,19,   -6, -7]
 }