Difference between revisions of "Action0"
Planetmaker (talk | contribs) |
Planetmaker (talk | contribs) |
||
Line 96: | Line 96: | ||
0F for [[Action0Objects|newobjects]] |
0F for [[Action0Objects|newobjects]] |
||
+ | |||
+ | 10 for [[Action0Railtypes|rail types]] (OpenTTD r18969) |
||
Note that the above list is the master list for ''all'' actions where not stated otherwise. |
Note that the above list is the master list for ''all'' actions where not stated otherwise. |
Revision as of 01:23, 31 January 2010
Defining new graphics feature properties
Action 0
Defining new graphics feature properties
-=What does it do?=-
Action 0 is similar to TTDAlter in that it changes the feature properties of 'features', i.e. vehicles, stations, bridges, houses and more. That means that you can change properties like:
- vehicle introduction date
- top speed
- wagon capacity
and many more.
-=Format=-
The data for Action 0 looks as follows:
-+<Sprite-number> * <Length> 00 <Feature> <Num-props> <Num-info> <Id> (<Property <New-info>)...+-
Here is a short overview of what every term means:
||Element|Size|Description
<-+Sprite-number+-> |dec|A sequential sprite number
<-+Length+-> |dec|The total number of bytes in the action
-+00+- |B|Action type. In this case, 00
<-+Feature+-> |B|Which type of feature you would like to change
<-+Num-props+-> |B|How many properties you would like to change per vehicle or station
<-+Num-info+-> |B|How many vehicles/stations you would like to change
<-+Id+-> |B*|The ID of the first vehicle/station to change
<-+Property+-> |B|What property to change for each vehicle/station
<-+New-info+-> |V|The new value of the property||
You can put an Action 0 anywhere after Action 8 in the GRF file.
The <Id> is an extended byte since 2.0.1 alpha 61, to support the definition of >255 sound effects. In OpenTTD since r13482, extended IDs (up to 65535) can be used for vehicles as well. However there is currently a caveat that articulated parts must be below 128.
-=Filling in the terms=-
Sprite-number
Action 0 can appear anywhere in the GRF file, so set it to the sprite number you are currently at.
Length
The total number of bytes in Action 0. Start counting from <-+Action+->, the bit that sets the pseudo-sprite to act as the specified action.
Action
The type of action this pseudo-sprites defines. It should be 00 here because we want this pseudo-sprite to act as Action 0.
Feature
This sets the type of feature that you wish to change. Set it to:
00 for trains
01 for road vehicles
02 for ships
03 for planes
04 for stations
05 for canals
06 for bridges
08 for global variables
09 for industry tiles (see defaults)
0A for industries (see defaults)
0C for sound effects
0D for airports (No official properties)
0E for signals (Action 0 is not valid for this feature)
0F for newobjects
10 for rail types (OpenTTD r18969)
Note that the above list is the master list for all actions where not stated otherwise.
Num-props
This is the number of properties that you wish to change per vehicle or station. Note: even if you wish to set the same properties to the same value for different vehicles then you must still repeat the properties and their values for each vehicle.
Num-info
Simply the number of vehicles that you will change using this action 0.
Id
The Vehicle ID of the first vehicle or station to change. If num-info is greater than one, this vehicle/station and the following vehicles/stations will be changed.
Property
The number of the property that will be changed. This and the New-info section are repeated as many times as there are properties to set; in total, there are <num-props> property bytes.
See relevant sub-section (links at the bottom) for more details.
New-info
The new information that will replace the previous information for the specified property. This is a variable size; dependent upon the property. Each property byte is followed by <num-info> new-info sections.
The appropriate \b, \w, and \d escape sequences can be quite useful for most <new-info>s. See the discussion of escape sequences for further information.
-=Features and properties=-
Each feature has its own very specific properties. These are explained in detail in the pages listed below:
{toc}
You will also find the minimum GRF version (in Action 8) that supports this property, or alternatively if the property was introduced between version changes, the patch version number that you can check with Action 7.
-=Example=-
For examples please see the action 0 entries for each feature.