Difference between revisions of "ReadingPatchVariables"

From GRFSpecs
Jump to navigationJump to search
 
Line 84: Line 84:
 
| |SS : combination of both X and Y, thus giving the size(log2) 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
+
| |All map sizes will be substracted by 6, as to keep the size 64 the smallest one, thus zero based||
 
14|---|-Reserved- for day length data, format would be defined later. Not supported yet||
 
   
 
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 [[TTDPatchFlags|action 7 variable 85]] should be checked first.
 
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 [[TTDPatchFlags|action 7 variable 85]] should be checked first.

Revision as of 23:15, 23 December 2009

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|Bit switch 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.