Difference between revisions of "ReadingPatchVariables"
Planetmaker (talk | contribs) |
|||
Line 68: | Line 68: | ||
12|miscmods2/-Zm|Bit switch (since r1738) |
12|miscmods2/-Zm|Bit switch (since r1738) |
||
− | 13|map size information| |
+ | 13|map size information|Format = -MABXYSS (since r11961 and r1817) |
| | M : the type of map |
| | M : the type of map |
Revision as of 20:59, 12 June 2010
Reading Patch variables
-=Introduction=-
Since 2.0.1 alpha 48, it has been possible to use action D to read various special Patch variables. These are usually switch values, but there are also a few other useful values.
-=Format=-
-+<Sprite-number> * <Length> 0D <target> <operation> <variable> FE FF FF 00 00+-
||Element|Size|Description
0D|B|Defines action 0D
<target>|B|Target parameter
<operation>|B|As for ActionD, but only assignment is valid.
<variable>|B|Patch variable number to read. See below.
FE|B|Defines a special variable access
FF FF 00 00|D|Indicates that a patch variable is being read||
variable
The following patch variables are defined:
||variable|Switch|Value
00|miscmods/-Yo|Bit switch
01|experimentalfeatures/-XF|Bit switch
02|morevehicles/-x|Vehicle array multiplier
03|mountains&curves;/-mc|Two bytes with four sets of two bits
04|planecrashcontrol/-Xc|Bit switch
05|autorenew/-Xa|Signed value
06|multihead/-M|Speed increase, in percent
07|disasters/-XD|Bit switch
08|unifiedmaglev/-XM|Unified maglev mode
09|bridgespeedlimits/-XX|Speed fraction, in percent
0A|---|TTD Language, see the "new scheme" for action 4
0B|startyear/-XY|Year-1920
0C|morebuildoptions/-YB|Bit switch
0D|moresteam/-YM|value=LF (two hex digits), L=length, F=frequency
0E|freighttrains/-Yf|weight factor
0F|wagonspeedlimits/-YL|Speed increase for empty wagons
10|planespeed/-YP|speed factor
11|dual company colors|2CC colormap base sprite (since r1404)
12|miscmods2/-Zm|Bit switch (since r1738)
13|map size information|Format = -MABXYSS (since r11961 and r1817)
| | M : the type of map
| |bit 0 set : squared map. Clear : rectangular map
| |bit 1 set : Y is the bigger edge(bit 0 is clear).Clear : X is the bigger edge.
| |A : minimum edge(log2) of the map
| |B : maximum edge(log2) of the map
| |XY : edges(log2) of each side of the map.
| |SS : combination of both X and Y, thus giving the size(log2) of the map
| |All map sizes will be substracted by 6, as to keep the size 64 the smallest one, thus zero based||
If experimentalfeatures, miscmods, or miscmods2 are off, the corresponding value will be zero. For all other switches, the value is unspecified if the switch is off, so action 7 variable 85 should be checked first.