ReadingOtherGRFParameters: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
dmccoy (talk) No edit summary |
if only assignment is valid, then put it directly into the syntax |
||
| (9 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
| ⚫ | |||
| ⚫ | |||
'''''Reading another GRF file's parameters''''' |
|||
| ⚫ | |||
==Reading another GRF file's parameters== |
|||
| ⚫ | |||
| ⚫ | |||
{| class="wikitable" |
|||
| ⚫ | |||
|- |
|||
!'''Element''' |
|||
| ⚫ | |||
!'''Description''' |
|||
|- |
|||
|0D |
|||
|B |
|||
| ⚫ | |||
|- |
|||
| ⚫ | |||
|B |
|||
|Target parameter |
|||
|- |
|||
|<param> |
|||
|B |
|||
| ⚫ | |||
|- |
|||
|FE |
|||
|B |
|||
| ⚫ | |||
|- |
|||
|<GRFID> |
|||
|D |
|||
| ⚫ | |||
|} |
|||
| ⚫ | |||
| ⚫ | |||
With parameter FE you can read the action 14 NewGRF version of another NewGRF in OpenTTD. It returns 0 if no NewGRF version has been set by an action 14. |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
<operation>|B|As for [[ActionD#operation|action D]], but only assignment is valid. |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
Latest revision as of 16:55, 18 March 2015
Introduction
Since TTDPatch 2.0.1 alpha 16, it has been possible to use action D to read the parameters of other GRF files. With this, you can try to use the settings for another related GRF before falling back to a hard coded default.
Format
<Sprite-number> * <Length> 0D <target> 00 <param> FE <GRFID>
| Element | Size | Description |
|---|---|---|
| 0D | B | Defines action 0D |
| <target> | B | Target parameter |
| <param> | B | Parameter number of the other GRF file that you want to read |
| FE | B | Defines a special variable access |
| <GRFID> | D | The GRFID whose parameter you want to read |
This will store parameter <param> of the GRF file with GRFID <GRFID> into the <target>
With parameter FE you can read the action 14 NewGRF version of another NewGRF in OpenTTD. It returns 0 if no NewGRF version has been set by an action 14.
If the GRFID cannot be found, or if the parameter is not defined, a value of 0 is used instead (no matter whether bit 7 of the operation is set or not).