Difference between revisions of "NML:Replace new sprites"
(add nav template) |
(new unified SIGNALS type) |
||
(22 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{NMLNavBlocksyntax}} |
{{NMLNavBlocksyntax}} |
||
− | Over time, several features have been added to |
+ | Over time, several features have been added to OpenTTD that require new sprites. As these sprites are not present in the original base graphics and only found in the extra grf of each base set. They cannot be replaced using a normal <code style="color:darkgreen">replace</code> block. Instead, a <code style="color:darkgreen">replacenew</code> block has to be used. The semantics are like this: |
− | replacenew(<type>, <image-file>[, <offset>]) { |
+ | replacenew [<block-name>](<type>, [<image-file>[, <offset>]]) { |
[[NML:Realsprites|list of realsprites]] |
[[NML:Realsprites|list of realsprites]] |
||
} |
} |
||
+ | |||
+ | A <code style="color:darkgreen"><block_name></code> is optional but required, if you want to define [[NML:Alternative sprites|alternative sprites]] for the sprite block so that it can be referenced there. |
||
The <code style="color:darkgreen"><type></code> parameter indicates the type of sprites that will be replaced. It should be an identifier from the first column of the following table. |
The <code style="color:darkgreen"><type></code> parameter indicates the type of sprites that will be replaced. It should be an identifier from the first column of the following table. |
||
+ | For information on what sprites are needed and in what order, it's generally best to look at the OpenGFX source [https://github.com/OpenTTD/OpenGFX/tree/master/sprites/extra], in the sprites/extra directory. |
||
− | {| class="t" |
||
+ | |||
+ | {| class="wikitable sortable" |
||
+ | |||
! Type |
! Type |
||
! Number of sprites |
! Number of sprites |
||
|- |
|- |
||
+ | | SIGNALS <ref>In older versions this was named PRE_SIGNAL, PRE_SIGNAL_SEMAPHORE and PRE_SIGNAL_SEMAPHORE_PBS.</ref> |
||
− | | PRE_SIGNAL |
||
⚫ | |||
⚫ | |||
− | | PRE_SIGNAL_SEMAPHORE |
||
− | | 112 |
||
⚫ | |||
− | | PRE_SIGNAL_SEMAPHORE_PBS |
||
| 240 |
| 240 |
||
|- |
|- |
||
Line 30: | Line 29: | ||
| FOUNDATIONS_SLOPES_HALFTILES |
| FOUNDATIONS_SLOPES_HALFTILES |
||
| 90 |
| 90 |
||
− | |- |
+ | |- |
+ | <!-- This is not usable anyway, as NML 0.3 is grf v8 |
||
| TTDP_GUI_25 |
| TTDP_GUI_25 |
||
+ | | 73<ref name="no_offset" /> |
||
⚫ | |||
|- |
|- |
||
| TTDP_GUI |
| TTDP_GUI |
||
+ | | 93<ref name="no_offset" /> |
||
− | | 93 |
||
− | |- |
+ | |- |
+ | --> |
||
| CANALS |
| CANALS |
||
| 65 |
| 65 |
||
Line 47: | Line 48: | ||
|- |
|- |
||
| TRAMWAY |
| TRAMWAY |
||
+ | | 113 {{ottdp|1.10|no}} {{nml|0.5}} 119 |
||
− | | 113 |
||
|- |
|- |
||
+ | <!-- |
||
| SNOWY_TEMPERATE_TREES |
| SNOWY_TEMPERATE_TREES |
||
+ | | 133<ref name="no_offset" /> |
||
− | | 133 |
||
|- |
|- |
||
+ | --> |
||
| COAST_TILES |
| COAST_TILES |
||
+ | | 16<ref name="no_offset">This type does not support the use of an offset. Thus the exact amount of sprites must be supplied.</ref> |
||
− | | 16 |
||
|- |
|- |
||
| COAST_TILES_BASEGFX |
| COAST_TILES_BASEGFX |
||
+ | | 10<ref name="no_offset" /> |
||
− | | 10 |
||
|- |
|- |
||
| COAST_TILES_DIAGONAL |
| COAST_TILES_DIAGONAL |
||
+ | | 18<ref name="no_offset" /> |
||
− | | 18 |
||
|- |
|- |
||
+ | <!-- |
||
| NEW_SIGNALS |
| NEW_SIGNALS |
||
⚫ | |||
− | | any (a) |
||
|- |
|- |
||
+ | --> |
||
| SLOPED_RAILS |
| SLOPED_RAILS |
||
| 12 |
| 12 |
||
Line 80: | Line 85: | ||
|- |
|- |
||
| FLAGS |
| FLAGS |
||
− | | 36 |
+ | | 36 |
|- |
|- |
||
| OTTD_GUI |
| OTTD_GUI |
||
− | | |
+ | | 191 |
|- |
|- |
||
| AIRPORT_PREVIEW |
| AIRPORT_PREVIEW |
||
− | | 9 |
+ | | 9 |
⚫ | |||
+ | | RAILTYPE_TUNNELS |
||
⚫ | |||
⚫ | |||
+ | | OTTD_RECOLOUR |
||
⚫ | |||
|} |
|} |
||
⚫ | |||
⚫ | |||
− | |||
− | (b) Any number of sprites can be specified up to the stated maximum. Furthermore the <code style="color:darkgreen">offset</code> variable can be used, see below for more info. |
||
− | |||
− | The amount of sprites has to be equal to the number given in the table, except in the cases of (a) and (b). Having less sprites results in an error. Having more sprites is allowed to provide future compatibility, but a warning will be issued. |
||
⚫ | Parameter <code style="color:darkgreen"><offset></code> is optional and has a default value of 0. Setting this value sets an offset into the block of sprites, so only a subset of the sprites (starting at <code style="color:darkgreen">offset</code>) will be replaced. An offset is not allowed in the case of the sprite types marked with <ref name="no_offset" />. Don't use offsets, if you want you NewGRF compatible with TTDPatch. |
||
⚫ | |||
+ | <references /> |
||
⚫ | Parameter <code style="color:darkgreen"><offset></code> is optional and has a default value of 0 |
Latest revision as of 21:18, 27 June 2023
Vehicles, Stations, Canals, Bridges, Towns, Houses, Industries (Tiles), Cargos, Airports+Tiles, Objects, Railtypes, Roadtypes, Tramtypes, Terrain
Over time, several features have been added to OpenTTD that require new sprites. As these sprites are not present in the original base graphics and only found in the extra grf of each base set. They cannot be replaced using a normal replace
block. Instead, a replacenew
block has to be used. The semantics are like this:
replacenew [<block-name>](<type>, [<image-file>[, <offset>]]) { list of realsprites }
A <block_name>
is optional but required, if you want to define alternative sprites for the sprite block so that it can be referenced there.
The <type>
parameter indicates the type of sprites that will be replaced. It should be an identifier from the first column of the following table.
For information on what sprites are needed and in what order, it's generally best to look at the OpenGFX source [1], in the sprites/extra directory.
Type | Number of sprites |
---|---|
SIGNALS [1] | 240 |
CATENARY | 48 |
FOUNDATIONS_SLOPES | 74 |
FOUNDATIONS_SLOPES_HALFTILES | 90 |
CANALS | 65 |
ONE_WAY_ROAD | 6 |
COLOURMAP_2CC | 256 |
TRAMWAY | 113 1.10 NML 0.5 119 |
COAST_TILES | 16[2] |
COAST_TILES_BASEGFX | 10[2] |
COAST_TILES_DIAGONAL | 18[2] |
SLOPED_RAILS | 12 |
AIRPORTS | 15 |
ROAD_STOPS | 8 |
AQUEDUCTS | 8 |
AUTORAIL | 55 |
FLAGS | 36 |
OTTD_GUI | 191 |
AIRPORT_PREVIEW | 9 |
RAILTYPE_TUNNELS | 16 |
OTTD_RECOLOUR | 1 |
Parameter two <image-file>
(optional) is a literal (quoted) string that specifies the default file where the sprites are located. This may be overridden per-sprite.
Parameter <offset>
is optional and has a default value of 0. Setting this value sets an offset into the block of sprites, so only a subset of the sprites (starting at offset
) will be replaced. An offset is not allowed in the case of the sprite types marked with [2]. Don't use offsets, if you want you NewGRF compatible with TTDPatch.