Difference between revisions of "Features"

From GRFSpecs
Jump to navigationJump to search
(created)
 
(→‎List of features and feature-specific Actions: split tram types from road types)
 
(13 intermediate revisions by 4 users not shown)
Line 16: Line 16:
 
|05 || Canals || [[Action0/Canals | yes]] || [[Action1 | yes]] || [[Action2/Single Set | yes]] || [[VariationalAction2/Canals | yes]] || [[RandomAction2#Canals | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || ''no''
 
|05 || Canals || [[Action0/Canals | yes]] || [[Action1 | yes]] || [[Action2/Single Set | yes]] || [[VariationalAction2/Canals | yes]] || [[RandomAction2#Canals | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || ''no''
 
|-
 
|-
|06 || Bridges || [[Action0/Bridges | yes]] || ''no'' || ''no'' || [[VariationalAction2/Bridges | no-ish]] || ''no'' || ''no'' || ''no'' || ''no-ish'' (1)
+
|06 || Bridges || [[Action0/Bridges | yes]] || ''no'' || ''no'' || [[VariationalAction2/Bridges | no-ish]] || ''no'' || ''no'' || ''no'' || [[Action0/Bridges#Purchase_text_.2810.29 | yes-ish]]
 
|-
 
|-
 
|07 || Houses || [[Action0/Houses | yes]] || [[Action1 | yes]] || [[Action2/Sprite Layout | yes]] || [[VariationalAction2/Houses | yes]] || [[RandomAction2#Town_building_triggers | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || [[Action4 | yes]]
 
|07 || Houses || [[Action0/Houses | yes]] || [[Action1 | yes]] || [[Action2/Sprite Layout | yes]] || [[VariationalAction2/Houses | yes]] || [[RandomAction2#Town_building_triggers | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || [[Action4 | yes]]
 
|-
 
|-
|08 || Global Variables || [[Action0/Global Variables | yes]] || ''no'' || ''no'' || ''no'' || ''no'' || ''no'' || ''no'' || ''no''
+
|08 || Global Settings || [[Action0/Global Settings | yes]] || ''no'' || ''no'' || ''no'' || ''no'' || ''no'' || ''no'' || ''no''
 
|-
 
|-
 
|09 || Industry Tiles || [[Action0/Industry Tiles | yes]] || [[Action1 | yes]] || [[Action2/Sprite Layout | yes]] || [[VariationalAction2/Industry Tiles | yes]] || [[RandomAction2#Industry_tile_triggers | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || ''no''
 
|09 || Industry Tiles || [[Action0/Industry Tiles | yes]] || [[Action1 | yes]] || [[Action2/Sprite Layout | yes]] || [[VariationalAction2/Industry Tiles | yes]] || [[RandomAction2#Industry_tile_triggers | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || ''no''
Line 26: Line 26:
 
|0A || Industries || [[Action0/Industries | yes]] || [[Action1 | yes]] || [[Action2/Industries | yes]] || [[VariationalAction2/Industries | yes]] || [[RandomAction2#Industry_tile_triggers | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || [[Action4 | yes]]
 
|0A || Industries || [[Action0/Industries | yes]] || [[Action1 | yes]] || [[Action2/Industries | yes]] || [[VariationalAction2/Industries | yes]] || [[RandomAction2#Industry_tile_triggers | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || [[Action4 | yes]]
 
|-
 
|-
|0B || Cargos || [[Action0/Cargos | yes]] || [[Action1 | yes]] || [[Action2/Single Set | yes]] || [[VariationalAction2 | yes-ish]] (2) || ''no'' || [[Callbacks | yes]] || [[Action3 | yes]] || [[Action4 | yes]]
+
|0B || Cargos || [[Action0/Cargos | yes]] || [[Action1 | yes]] || [[Action2/Single Set | yes]] || [[VariationalAction2 | yes-ish]] <ref name="novars">No feature specific variables though</ref> || ''no'' || [[Callbacks | yes]] || [[Action3 | yes]] || [[Action4 | yes]]
 
|-
 
|-
|0C || Sound Effects || [[Action0/Sound Effects | yes]] || ''no'' || [[Action2/Only Callback Failure | yes-ish]] (3) || ''no'' || ''no'' || [[Callbacks | yes]] || [[Action3 | yes]] || ''no''
+
|0C || Sound Effects || [[Action0/Sound Effects | yes]] || ''no'' || [[Action2/Only Callback Failure | yes-ish]] <ref name="failonly">Callback failure only</ref> || [[VariationalAction2 | yes-ish]] <ref name="novars"/> || ''no'' || [[Callbacks | yes]] || [[Action3 | yes]] || ''no''
 
|-
 
|-
|0D || Airports || [[Action0/Airports | yes]] || [[Action1 | yes]] || [[Action2/Single Set | yes]] || [[VariationalAction2 | yes-ish]] (2) || [[RandomAction2#Stations | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || [[Action4 | yes]]
+
|0D || Airports || [[Action0/Airports | yes]] || [[Action1 | yes]] || [[Action2/Single Set | yes]] || [[VariationalAction2/Airports | yes]] || [[RandomAction2#Stations | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || [[Action4 | yes]]
 
|-
 
|-
|0E || Signals || ''no'' || [[Action5#0E_New_Signals | Action5]] || [[Action2/Only Callback Failure | yes-ish]] (3) || [[VariationalAction2/Signals | yes]] || ''no'' || [[Callbacks | yes]] || [[Action3 | yes]] || ''no''
+
|0E || Signals || ''no'' || [[Action5#0E_New_Signals | Action5]] || [[Action2/Only Callback Failure | yes-ish]] <ref name="failonly"/> || [[VariationalAction2/Signals | yes]] || ''no'' || [[Callbacks | yes]] || [[Action3 | yes]] || ''no''
 
|-
 
|-
 
|0F || Objects || [[Action0/Objects | yes]] || [[Action1 | yes]] || [[Action2/Sprite Layout | yes]] || [[VariationalAction2/Objects | yes]] || [[RandomAction2#Objects | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || [[Action4 | yes]]
 
|0F || Objects || [[Action0/Objects | yes]] || [[Action1 | yes]] || [[Action2/Sprite Layout | yes]] || [[VariationalAction2/Objects | yes]] || [[RandomAction2#Objects | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || [[Action4 | yes]]
 
|-
 
|-
|10 || Railtypes || [[Action0/Railtypes | yes]] || [[Action1 | yes]] || [[Action2/Single Set | yes]] || [[VariationalAction2/Railtypes | yes]] || [[RandomAction2#Rail_types | yes]] || [[Callbacks | yes]] || ''no'' || [[Action4 | yes]]
+
|10 || Railtypes || [[Action0/Railtypes | yes]] || [[Action1 | yes]] || [[Action2/Single Set | yes]] || [[VariationalAction2/Railtypes | yes]] || [[RandomAction2#Rail_types | yes]] || ''no'' || [[Action3 | yes]] || [[Action4 | yes]]
 
|-
 
|-
|11 || Airport Tiles || [[Action0/Airport Tiles | yes]] || [[Action1 | yes]] || [[Action2/Sprite Layout | yes]] || [[VariationalAction2/Industry Tiles | yes]] || [[RandomAction2#Stations | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || ''no''
+
|11 || Airport Tiles || [[Action0/Airport Tiles | yes]] || [[Action1 | yes]] || [[Action2/Sprite Layout | yes]] || [[VariationalAction2/Airport Tiles | yes]] || [[RandomAction2#Stations | yes]] || [[Callbacks | yes]] || [[Action3 | yes]] || ''no''
 
|-
 
|-
|12 || Towns || ''no'' || ''no'' || ''no'' || [[VariationalAction2/Towns | yes]] || ''no'' || ''no'' || ''no'' || [[ActionF]]
+
|12 || Roadtypes || [[Action0/Roadtypes | yes]] || [[Action1 | yes]] || [[Action2/Single Set | yes]] || [[VariationalAction2/Roadtypes | yes]] || [[RandomAction2#Road_types | yes]] || ''no'' || [[Action3 | yes]] || [[Action4 | yes]]
 
|-
 
|-
|48 || Original Strings (4) || ''no'' || ''no'' || ''no'' || ''no'' || ''no'' || ''no'' || ''no'' || [[Action4 | yes]]
+
|13 || Tramtypes || [[Action0/Tramtypes | yes]] || [[Action1 | yes]] || [[Action2/Single Set | yes]] || [[VariationalAction2/Tramtypes | yes]] || [[RandomAction2#Tram_types | yes]] || ''no'' || [[Action3 | yes]] || [[Action4 | yes]]
  +
|-
  +
|N/A <!-- Towns have no feature. NML and OTTD assign a pseudo feature number, but this does not mean there is an actual feature number -->
  +
| Towns || ''no'' || ''no'' || ''no'' || [[VariationalAction2/Towns | yes]] || ''no'' || ''no'' || ''no'' || [[ActionF]]
  +
|-
 
|48 || Original Strings <ref>This is a pseudo-feature only used in Action4 to assign original strings. The value 0x48 originates from the way old TTDPatch versions checked for switches enabling/disabling features. NewTrains (feature 0x00) are activated by [[TTDPatchFlags | switch 0x37]]. Adding 0x48 to that results in 0x7F - a switch which is always set when TTDPatch is active. Thus feature 0x48 was not disabled by any switch. (today TTDPatch does not depend on the switches being in order of the features)</ref> || ''no'' || ''no'' || ''no'' || ''no'' || ''no'' || ''no'' || ''no'' || [[Action4 | yes]]
 
|}
 
|}
  +
<references/>
(1) In TTDPatch you can change the [[TextIDs/Tunnel_and_bridge_strings | original bridge name strings]].
 
 
(2) No feature specific variables though
 
 
(3) Callback failure only
 
 
(4) This is a pseudo-feature only used in Action4 to assign original strings. The value 0x48 originates from the way old TTDPatch versions checked for switches enabling/disabling features. NewTrains (feature 0x00) are activated by [[TTDPatchFlags | switch 0x37]]. Adding 0x48 to that results in 0x7F - a switch which is always set when TTDPatch is active. Thus feature 0x48 was not disabled by any switch. (today TTDPatch does not depend on the switches being in order of the features)
 

Latest revision as of 10:48, 28 December 2019

List of features and feature-specific Actions

Feature Action0 Action1 Action2 VarAction2 RandomAction2 Callbacks Action3 Action4
00 Trains yes yes yes yes yes yes yes yes
01 Road Vehicles yes yes yes yes yes yes yes yes
02 Ships yes yes yes yes yes yes yes yes
03 Aircraft yes yes yes yes yes yes yes yes
04 Stations yes yes yes yes yes yes yes yes
05 Canals yes yes yes yes yes yes yes no
06 Bridges yes no no no-ish no no no yes-ish
07 Houses yes yes yes yes yes yes yes yes
08 Global Settings yes no no no no no no no
09 Industry Tiles yes yes yes yes yes yes yes no
0A Industries yes yes yes yes yes yes yes yes
0B Cargos yes yes yes yes-ish [1] no yes yes yes
0C Sound Effects yes no yes-ish [2] yes-ish [1] no yes yes no
0D Airports yes yes yes yes yes yes yes yes
0E Signals no Action5 yes-ish [2] yes no yes yes no
0F Objects yes yes yes yes yes yes yes yes
10 Railtypes yes yes yes yes yes no yes yes
11 Airport Tiles yes yes yes yes yes yes yes no
12 Roadtypes yes yes yes yes yes no yes yes
13 Tramtypes yes yes yes yes yes no yes yes
N/A Towns no no no yes no no no ActionF
48 Original Strings [3] no no no no no no no yes
  1. 1.0 1.1 No feature specific variables though
  2. 2.0 2.1 Callback failure only
  3. This is a pseudo-feature only used in Action4 to assign original strings. The value 0x48 originates from the way old TTDPatch versions checked for switches enabling/disabling features. NewTrains (feature 0x00) are activated by switch 0x37. Adding 0x48 to that results in 0x7F - a switch which is always set when TTDPatch is active. Thus feature 0x48 was not disabled by any switch. (today TTDPatch does not depend on the switches being in order of the features)