From GRFSpecs
Revision as of 11:12, 21 August 2011 by FooBar (talk | contribs) (content of nml r1625)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Several features will need to reference actual graphics from files you created. You can provide real sprites in many different formats, all detailed below. There is a lot of information you'll need to provide. Most important are the filename and the location of the sprite in that file. Since most blocks that reference realsprites will allow you to specify a default filename, you don't often need to give a filename for every separate sprite.

Allowed formats:

[left_x, upper_y, width, height, offset_x, offset_y]
[left_x, upper_y, width, height, offset_x, offset_y, compression]
[left_x, upper_y, width, height, offset_x, offset_y, filename]
[left_x, upper_y, width, height, offset_x, offset_y, compression, filename]
[offset_x, offset_y]
[offset_x, offset_y, compression]
[offset_x, offset_y, filename]
[offset_x, offset_y, compression, filename]

If you don't specify left_x, upper_y, width and height it'll default to the complete file. If you don't specify the filename it'll take the filename from the block containing this realsprite. It's a fatal error not to specify a filename for either the block containing a realsprite or the realsprite itself. For possible values of compression, see the table below.

For all parameters you can use expressions as complex as you want as long as they can be resolved at compiletime. That means you're free to use for example template parameters, but letting the offset depend on a parameter is not allowed.

The following table contains a list of compression flags. Multiple flags may be combined using the binary-OR (|) operator.

Name Description
NORMAL (default) or TILE Compression algorithm to use for the sprite. TILE compression may be more efficient for sprites with large chunks of transparant blue, such as tiles or diagonal vehicle views.
COMPRESSED or UNCOMPRESSED (default) Whether to store the sprite compressed or uncompressed in memory. Storing compressed is saves memory for large, little-used sprites.
CROP (default) or NOCROP Whether to crop the sprites when the -c command line option is set.


 [0, 0, 64, 31, -31, 0, TILE]