belugas@6029: pasky@464: belugas@6029: pasky@464: belugas@6029: belugas@6029: belugas@6029: belugas@6029: OpenTTD Landscape Internals belugas@6029: pasky@464: pasky@464: pasky@464: belugas@6029:

Landscape

belugas@6184:

Seven attributes (counting "type_height") hold the informations about a tile.
belugas@6029: These attributes are referred to as belugas@6029: "type_height", belugas@5803: "m1", "m2", belugas@5803: "m3", "m4", belugas@6029: "m5" and "m6".
belugas@5803: The most important value is the class of a tile, stored in the upper 4 bits belugas@6184: of the type_height attribute. The lower 4 bits are used to encode the height and belugas@6184: slope data. belugas@6184:

belugas@6184: belugas@6184: Special Attribute : m6. There are 4 bits of it that are used accross multiple tile classes
belugas@6184: belugas@6184:

belugas@6029: For a graphical representation of the tile-layout have a look at belugas@6029: Landscape grid page. belugas@6029:

pasky@464: belugas@6180: The owner of a tile, as frequently associated with attribute m1, belugas@6029: can be either players (human or AI) or "Game entities". belugas@6029: They are identified using: belugas@6184: belugas@6029: belugas@6029: belugas@6029: belugas@6029: belugas@6029: belugas@6029: belugas@6180:
00  current player
01..08  AI or network players
0F  a town owns the tile
10  nobody owns the tile
11  "water" owns the tile
FF  spectator in MP or in scenario editor
pasky@464: belugas@6029:

OTTD's class-specific periodic tile processing routine is called once every +256 ticks for each tile.

pasky@464: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6184: belugas@6180: belugas@6029: belugas@6180: belugas@6029: belugas@6029: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029: belugas@6180: belugas@6029: belugas@6029: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029: belugas@6180: belugas@6180: belugas@6029: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029: pasky@464: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029: belugas@6180: belugas@6180: belugas@6029: pasky@464: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029: belugas@6184: belugas@6184: belugas@6029: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029: belugas@6180: belugas@6029: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6029:
ClassMeaning & details of encoding
0  Ground
  belugas@6029:
    belugas@6180:
  • m1: owner of the tile (normally 10)
  • belugas@6180:
  • m4 bits 7..5: type of hedge on the SW border of the tile (1 through 6, or 0=none)
  • belugas@6180:
  • m4 bits 4..2: same as 7..5, but for the SE border
  • belugas@6029:
  • m5 bits 7..5: update counter, incremented on every periodic processing for tile types, belugas@6029: other than 03, 07, 0B, 10 and above.
    belugas@6029: on wraparound, the tile is updated (for fields, the type of fields in m3 is increased, for other types the tile type in m5 is increased).
    belugas@6180: For snow and desert, these bits are not used, tile is updated on every periodic processing.
  • belugas@6180:
  • m5 bits 4..0: tile type: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    00  bare land
    01  1/3 grass
    02  2/3 grass
    03  full grass
    07  rough land
    0B  rocks
    0F  fields; type of fields in m3 bits 3..0 (legal values: 0 through 9)
    belugas@6180: m2: Index into the array of industries (farms), INVALID_INDUSTRY (0xFFFF) if farm has been removed
    10  1/4 snow
    11  2/4 snow
    12  3/4 snow
    13  full snow
    15  partial desert
    17  full desert
    belugas@6029:
  • belugas@6184:
  • m6 bits 7..6 : Possibility of a bridge above, in the direction specified
  • belugas@6184:
  • m6 bits 1..0 : Tropic zone definition
  • belugas@6029:
belugas@6029:
1Railway tracks
  belugas@6029:
    belugas@6029:
  • m5 bit 7 clear: railway track belugas@6029:
      belugas@6180:
    • m1: owner of the track
    • belugas@6180:
    • m3 bits 3..0 = track type: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029:
      0  conventional railway
      1  electrified railway
      2  monorail
      3  maglev
      belugas@6029:
    • belugas@6180:
    • m4 bits 3..0: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: rubidium@7771: rubidium@7771: rubidium@7771: rubidium@7771: rubidium@7771: belugas@6029:
      0  on bare land
      1  on grass, no fences
      2  fence on the NW side
      3  fence on the SE side
      4  fences on the NW and SE sides
      5  fence on the NE side
      6  fence on the SW side
      7  fences on the NE and SW sides
      8  fence on the E side (track in the W corner)
      9  fence on the W side (track in the E corner)
      A  fence on the S side (track in the N corner)
      B  fence on the N side (track in the S corner)
      C  on snow or desert
      D  on grass with fence and water on the lower halftile
      belugas@6029:
    • belugas@6180:
    • m5 bits 5..0: track layout: bit set = track present: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029:
      bit 0: in the X direction
      bit 1: in the Y direction
      bit 2: in the north corner (direction W-E)
      bit 3: in the south corner (direction W-E)
      bit 4: in the west corner (direction N-S)
      bit 5: in the east corner (direction N-S)
      belugas@6029:
    • belugas@6029:
    belugas@6029:
  • rubidium@6172:
  • m5 bit 7 set: railway depot / checkpoints belugas@6029:
      belugas@6180:
    • m1: owner of the depot / checkpoint
    • belugas@6180:
    • m2: For waypoints, index into the array of waypoints.
    • belugas@6180:
    • m3 bits 3..0 = track type
    • belugas@6180:
    • m4 bits 3..0 = ground type, as per m4 bits 3..0 for railway tiles.
    • belugas@6029:
    • m5 value C0..C3: railway depot belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029:
      m5 bits 1..0
      direction: exit towards:
      00  NE
      01  SE
      02  SW
      03  NW
      belugas@6029:
    • rubidium@6172:
    • m5 value 80..81: checkpoint belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029:
      bit 0
      clearin X direction
      setin Y direction
      belugas@6029:
    • belugas@6029:
    belugas@6180:
  • belugas@6180:
  • m5 bit 6 set = with signals: belugas@6029:
      glx@6770:
    • m4 bits 7..4: bit clear = signal shows red; same bits as in m3
    • glx@6770:
    • m2 bit 2 (6): set = semaphore signals, clear = light signals (lower and right tracks)
    • glx@6770:
    • m2 bits 1..0 (5..4): type of signal (lower and right tracks) belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
      00: normal signals
      01: pre-signals
      10: exit-signals
      11: combo-signals
      belugas@6180:
    • belugas@6180: belugas@6180:
    • m3 bits 7..4: bit set = signal present: belugas@6180:
        belugas@6180:
      • For track in the X direction: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
        bit 6: signal in the SW direction
        bit 7: signal in the NE direction
        belugas@6180:
      • belugas@6180: belugas@6180:
      • For track in the Y direction: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
        bit 6: signal in the NW direction
        bit 7: signal in the SE direction
        belugas@6180:
      • belugas@6180: belugas@6180:
      • For tracks in the W-E direction: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
        bit 4: signal in the W direction on the track in the S corner
        bit 5: signal in the E direction on the track in the S corner
        bit 6: signal in the W direction on the track in the N corner
        bit 7: signal in the E direction on the track in the N corner
        belugas@6180:
      • belugas@6180: belugas@6180:
      • For tracks in the N-S direction: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
        bit 4: signal in the S direction on the track in the E corner
        bit 5: signal in the N direction on the track in the E corner
        bit 6: signal in the S direction on the track in the W corner
        bit 7: signal in the N direction on the track in the W corner
        belugas@6180:
      • belugas@6180:
      belugas@6180:
    • belugas@6029:
    belugas@6029:
  • belugas@6184:
  • m6 bits 7..6 : Possibility of a bridge above, in the direction specified
  • belugas@6184:
  • m6 bits 1..0 : Tropic zone definition
  • belugas@6029:
belugas@6029:
2Roads
  belugas@6180:
    rubidium@6682:
  • m5 bits 7..6 clear: road belugas@6180:
      rubidium@6682:
    • m1: owner of the road type #1
    • belugas@6180:
    • m2: Index into the array of towns, 0 for non-town roads
    • belugas@6180:
    • m3 bit 7 set = on snow or desert
    • belugas@6180:
    • m3 bits 6..4: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
      0  on bare land
      1  on grass
      2  paved
      3  with streetlights
      5  tree-lined
      6  on grass with road works
      7  paved with road works
      belugas@6180:
    • belugas@6180:
    • m3 bits 3..0: counter for the roadworks
    • rubidium@6682:
    • m4 bits 3..0: road layout road type #1: bit set = road piece present: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
      bit 0: NW piece
      bit 1: SW piece
      bit 2: SE piece
      bit 3: NE piece
      belugas@6180:
    • rubidium@6682:
    • m4 bits 7..4: road layout road type #2 rubidium@6764:
    • m5 bits 5..4: bits to disallow vehicles to go a specific direction rubidium@6764:
    • m5 bits 3..0: owner of road type #2 rubidium@6682:
    • m6 bits 5..2: road layout road type #3 rubidium@6682:
    • m7 bits 7..5: road types rubidium@6682:
    • m7 bits 4..0: owner of road type #3 rubidium@6682:
    • belugas@6180:
    belugas@6180:
  • rubidium@6682:
  • m5 bit 7 set, bit 6 clear: road depot belugas@6180:
      belugas@6180:
    • m1: owner of the depot
    • belugas@6180:
    • m3 bit 7 set = on snow or desert (not displayed, but set internally)
    • belugas@6180:
    • m5 bits 3..0 - direction: exit towards: 0 = NE, 1 = SE, 2 = SW, 3 = NW
    • rubidium@6682:
    • m7 bits 7..5: road types belugas@6180:
    belugas@6180:
  • rubidium@6682:
  • m5 bit 6 set, bit 7 clear: level crossing belugas@6180:
      belugas@6180:
    • m1: owner of the railway track
    • belugas@6180:
    • m2: Index into the array of towns, 0 for non-town roads
    • belugas@6180:
    • m3 bit 7 set = on snow or desert
    • belugas@6180:
    • m3 bits 6..4: 0 - on bare land, 1 - on grass, 2 or higher - paved
    • belugas@6180:
    • m3 bits 3..0: track type
    • rubidium@6682:
    • m4 bit 6: clear - road in the X direction, set - road in the Y direction (railway track always perpendicular)
    • rubidium@6682:
    • m4 bit 5: set if crossing lights are on
    • rubidium@6682:
    • m4 bits 4..0: owner of the road type #1
    • rubidium@6764:
    • m5 bits 3..0: owner of road type #2 rubidium@6682:
    • m7 bits 7..5: road types rubidium@6682:
    • m7 bits 4..0: owner of road type #3 belugas@6180:
    belugas@6180:
  • belugas@6184:
  • m6 bits 7..6 : Possibility of a bridge above, in the direction specified
  • belugas@6184:
  • m6 bits 1..0 : Tropic zone definition
  • belugas@6180:
belugas@6180:
3Town building
  belugas@6029:
    maedhros@6332:
  • m1 : Random bits (newhouses)
  • maedhros@6332:
  • m2 : index into the array of industries
  • maedhros@6332:
  • m3 bit 7 : belugas@6029:
      maedhros@6332:
    • set : House is complete maedhros@6332:
        maedhros@6332:
      • m5 : age of House. Maximum been 255, which means 255 years and more
      • maedhros@6332:
      maedhros@6332:
    • maedhros@6332:
    • clear : House is in construction maedhros@6332:
        maedhros@6332:
      • m5 bits 7..5 : free
      • maedhros@6332:
      • m5 bits 4..3 : construction stage
      • maedhros@6332:
      • m5 bits 2..0 : construction counter
      • maedhros@6332:
      maedhros@6332:
    • maedhros@6332:
    maedhros@6332:
  • m3 bit 6 : 9th bit of house type (m4), allowing 512 different types.
  • maedhros@6332:
  • m3 bits 5..0 : triggers activated (newhouses)
  • maedhros@6332:
  • m4 : town building type (with m3[6] bit)
  • maedhros@6332:
  • m5 : see m3 bit 7
  • maedhros@6332:
  • m6 : maedhros@6332:
      maedhros@6332:
    • If newhouses is activated maedhros@6332:
        maedhros@6332:
      • bits 7..3 : Current animation frame
      • maedhros@6332:
      • bit 2 : free
      • maedhros@6332:
      maedhros@6332:
    • maedhros@6332:
    • Standard behaviour maedhros@6332:
        maedhros@6332:
      • bits 7..2 : lift position (for houses type 04 and 05)
      • maedhros@6332:
      maedhros@6332:
    • maedhros@6332:
    • bits 1..0 : tropic zone specifier
    • belugas@6029:
    belugas@6029:
  • maedhros@6332:
  • m7 : maedhros@6332:
      maedhros@6332:
    • If newhouses is activated maedhros@6332:
        maedhros@6332:
      • Periodic processing time remaining
      • maedhros@6332:
      maedhros@6332:
    • maedhros@6332:
    • Standard behaviour (only for houses type 04 and 05) maedhros@6332:
        maedhros@6332:
      • bits 7..4 : free
      • maedhros@6332:
      • bits 3..1 : lift destination. Values can be 0..6, except 1.
        maedhros@6332: So the building has 6 effective floors. This is due to the fact that the first floor is 2 'normal' floors high.
        maedhros@6332: One 'normal' floor has a height of 6 lift positions. maedhros@6332:
      • maedhros@6332:
      • bit 0 : Lift has destination when set
      • maedhros@6332:
      maedhros@6332:
    • maedhros@6332:
    maedhros@6332:
  • belugas@6029:
maedhros@6332: Newhouses is the name englobing a newGRF feature developped by TTDPatch devs (mainly Csaboka).
maedhros@6332: It allows the replacement of the properties as well as the graphics of houses in the game.
maedhros@6332: To distinguish between the standard behaviour and the newGRF one, HouseID (m4 + m3[6]) is tested for anything above 110.
maedhros@6332: 110 is the count of standard houses. So above 110 means there is a new definition of at least one house
belugas@6029:
4 Trees
  belugas@6029:
    belugas@6184:
  • m1: owner (normally 10)
  • belugas@6184:
  • m2 bits 5..4: belugas@6184: belugas@6180: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6180: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184:
    0  on grass
    1  on rough land
    2  on snow or desert; m2 bits 7..6 - amount of snow or desert (for desert always set to 3 in TTD)
    belugas@6184:
  • belugas@6184:
  • m2 bits 3..0: update counter, incremented on every periodic processing.
    belugas@6184: on wraparound the growth status is updated (or, if it's 3, a random action is taken)
  • belugas@6184:
  • m3 bits 7..0: type of trees: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184:
    00..0B  temperate climate trees
    0C..13  sub-arctic climate trees
    14..1A  rainforest trees
    1B cactus plants
    1C..1F  sub-tropical climate, non-rainforest, non-desert trees
    20..28  toyland trees
    belugas@6184: Note: the actually displayed set of trees depends on both type and number of trees belugas@6184:
  • belugas@6184:
  • m4 bits 7..5: type of hedge on the SW border of the tile (1 through 6, or 0=none)
  • belugas@6184:
  • m4 bits 4..2: type of hedge on the SE border of the tile (1 through 6, or 0=none)
  • belugas@6184:
  • m5 bits 7..6: number of trees minus one
  • belugas@6184:
  • m5 bits 2..0: growth status: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184:
    0..2 one of trees is growing 
    3 all trees are fully grown 
    4..6 one of trees is withering 
    belugas@6184:
  • belugas@6184:
  • m6 bits 1..0 : Tropic zone definition
  • belugas@6029:
belugas@6029:
5Station tiles
  belugas@6180:
    belugas@6180:
  • m1: owner of the station
  • belugas@6180:
  • m2: index into the array of stations
  • belugas@6180:
  • m3 bits 7..4: persistent random data for newstations
  • belugas@6180:
  • m3 bits 3..0: track type for railway stations, must be 0 for all the other stations
  • belugas@6180:
  • m4: custom station id; 0 means standard graphics
  • rubidium@7272:
  • m5: graphics index (range from 0..255 for each station type): belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: rubidium@7272: rubidium@7272: belugas@6180: belugas@6029: belugas@6180: rubidium@7272: rubidium@7272: belugas@6180: pasky@464: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6029:
    00..07  railway station belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    00..01  open platform
    02..03  open platform with station building
    04....07  roofed platform
    bit 0: clear = in X direction, set = in Y direction
    belugas@6180:
    00..8Fall airports
    00..03  lorry loading area/truck station : exit towards: belugas@6180: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6180:
    00  NE
    01  SE
    02  SW
    03  NW
    belugas@6180:
    00..05  ship dock belugas@6180: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6180: rubidium@7272: belugas@6180: belugas@6180: belugas@6180:
    00  SW coast part
    01  NW coast part
    02  NE coast part
    03  SE coast part
    04  X direction water part
    05  Y direction water part
    belugas@6180:
    belugas@6029:
  • rubidium@7272:
  • m6 bits 3..5: the station type (rail, airport, truck, bus, oilrig, dock, buoy)
  • rubidium@7272:
  • m6 bit 2: 1 when a drive through road stop is built over a town owned road, otherwise 0
  • belugas@6184:
  • m6 bits 1..0 : Tropic zone definition
  • belugas@6029:
belugas@6029:
6 Water
  belugas@6180:
    belugas@6180:
  • m1: owner (for water and coasts normally 11)
  • belugas@6180:
  • m5: tile type: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    00  water
    01  coast or riverbank
    10..1B  canal locks belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    10  middle part, (SW-NE direction)
    11  middle part, (NW-SE direction)
    12  middle part, (NE-SW direction)
    13  middle part, (SE-NW direction)
    14  lower part, (SW-NE direction)
    15  lower part, (NW-SE direction)
    16  lower part, (NE-SW direction)
    17  lower part, (SE-NW direction)
    18  upper part, (SW-NE direction)
    19  upper part, (NW-SE direction)
    1A  upper part, (NE-SW direction)
    1B  upper part, (SE-NW direction)
    belugas@6180:
    80..83  ship depots belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    80  ship depot, NE part (X direction)
    81  ship depot, SW part (X direction)
    82  ship depot, NW part (Y direction)
    83  ship depot, SE part (Y direction)
    belugas@6180:
    belugas@6180:
  • belugas@6184:
  • m6 bits 7..6 : Possibility of a bridge above, in the direction specified
  • belugas@6184:
  • m6 bits 1..0 : Tropic zone definition
  • belugas@6180:
belugas@6029:
7 Void
 Tiles of this class form an invisible, one tile wide border at the south (bottom) edges of the map,
belugas@6180: so as to protect several algorithms from the consequences of a wraparound at the edges. belugas@6180:
8Industry tile
  belugas@6029:
    belugas@6029:
  • m1 bit 7: clear = under construction belugas@6029:
      belugas@6029:
    • m1 bits 4..2: construction counter, for buildings under construction incremented on every periodic tile processing
    • belugas@6029:
    • m1 bits 1..0: stage of construction (3 = completed), incremented when the construction counter wraps around
      belugas@6029: the meaning is different for some animated tiles which are never under construction (types 01, 1E..20, 30, 58; see above)
    • belugas@6029:
    belugas@6029:
  • belugas@6180:
  • m2: index into the array of industries
  • rubidium@7621:
  • m5: type (plus m6 bit 2):
    belugas@6180: (note: this is not the same as the industry type, which is stored in the array of industries) belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: rubidium@7621: rubidium@7621: rubidium@7621: rubidium@7621: belugas@6180:
    00..06  coal mine belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    00  wheel tower when not animated
    01  wheel tower when animated
    belugas@6180: animation state in m3 bits 5..0; m3 bit 6 set = sound already generated
    belugas@6180:
    07..0A  power station belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    08  chimney
    0A  transformer; animation progress in m3(valid range 0..7)
    belugas@6180:
    0B..0F  sawmill
    10..11  forest belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    11  trees cut down
    belugas@6180:
    12..17  oil refinery
    18..1C  oil rig
    1D..20  oil wells belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    1D  not animated
    1E..20  various stages of animation; progress of animation in m3
    belugas@6180:
    21..26  farm
    27..2A  factory (temperate climate)
    2B..2E  printing works
    2F..33  copper ore mine belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    2F  wheel tower when not animated
    30  wheel tower when animated; animation state in m3 bits 5..0; m3 bit 6 set = sound already generated
    31  chimney
    belugas@6180:
    34..39  steel mill
    3A..3B  bank (temperate climate)
    3C..3F  food processing plant
    40..47  paper mill
    48..58  gold mine belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    4F  wheel tower when not animated
    58  wheel tower when animated; animation state in m3 bits 5..0; m3 bit 6 set = sound already generated
    59..5A  bank (sub-arctic or sub-tropical climate)
    5B..63  diamond mine
    64..73  iron ore mine
    74fruit plantation
    75rubber plantation
    76..77  water supply
    78water tower
    79..7C  factory (sub-tropical climate)
    7D..80  lumber mill
    81..82  candyfloss forest belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    82  candyfloss 'trees' cut down
    belugas@6180:
    83..86  sweet factory
    87..88  battery farm belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    88  batteries 'reaped'
    belugas@6180:
    89cola wells
    8A..8D  toy shop
    8E..93  toy factory belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    8F  Animated part; animation state in m3 (valid range 00..31)
    belugas@6180: Tile animation is started (m4 zeroed) on the periodic processing.
    belugas@6180: While the animation is in progress, m4 holds the number belugas@6180: of animation cycles that have already taken place.
    belugas@6180: when this number reaches 8 the animation is stopped.
    belugas@6180:
    94..9B  plastic fountains (various stages of cyclic animation)
    9C..9F  fizzy drink factory
    A0..A3  bubble generator belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    A1  generators
    A2  bubble capture facility; animation state in m3 (valid range 00..27)
    belugas@6180:
    A4..A6  toffee quarry belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    A5  animated part; animation state in m3 (valid range 00..45)
    belugas@6180:
    A7..AE  sugar mine belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180:
    AE  animated part; animation state in m3 (valid range 00..5F)
    belugas@6180:
    AF..1FF  NewGRF industries industry
    belugas@6180:
  • belugas@6184:
  • m6 bits 1..0 : Tropic zone definition
  • rubidium@7621:
  • m3: animation state
  • rubidium@7621:
  • m4: animation loop
  • rubidium@7621:
  • m6 bits 3..5: random triggers (NewGRF)
  • rubidium@7621:
  • m7: random bits (NewGRF)
  • belugas@6029:
belugas@6029:
9Tunnel / bridge
  belugas@6184:
    belugas@6184:
  • m5 bits 7..4 clear: tunnel entrance/exit belugas@6184:
      belugas@6184:
    • m1: owner of the tunnel
    • belugas@6184:
    • m3 bits 3..0 = track type for railway tunnel, must be 0 for road tunnel
    • belugas@6184:
    • m4 bit 7 set = on snow or desert
    • belugas@6184:
    • m5 bits 3..2: 0 - railway tunnel, 1 - road tunnel
    • belugas@6184:
    • m5 bits 1..0 - direction: entrance towards: 0 = NE, 1 = SE, 2 = SW, 3 = NW
    • belugas@6184:
    belugas@6184:
  • belugas@6184:
  • m5 bit 7 set: bridge ramp belugas@6184:
      belugas@6184:
    • m1: owner of the bridge
    • belugas@6184:
    • m2 bits 7..4: bridge type: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6180: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6180: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6180: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184: belugas@6184:
      Type Max. speed (mph) Description
      0  20wooden
      1  30concrete
      2  40girder, steel
      3  50suspension, concrete
      4  60suspension, steel
      5  70suspension, steel
      6  100cantilever, steel
      7  130cantilever, steel
      8  150cantilever, steel
      9  160girder, steel
      A  200tubular, steel
      belugas@6184:
    • belugas@6184:
    • m3 bits 3..0 = type of track on the bridge, must be 0 for road bridge
    • belugas@6184:
    • m4 bit 7 set = on snow or desert
    • belugas@6184:
    • m5 bits 3..2: 0 - railway bridge, 1 - road bridge
    • belugas@6184:
    • m5 bits 1..0: DiagDirection onto the bridge
    • belugas@6184:
    belugas@6184:
  • belugas@6184:
  • m6 bits 7..6 : Possibility of a bridge above, in the direction specified
  • belugas@6184:
  • m6 bits 1..0 : Tropic zone definition
  • belugas@6029:
belugas@6029:
AUnmovables
  belugas@6029:
    belugas@6287:
  • m1 : owner of the object (for lighthouses and transmitters normally 10)
  • belugas@6287:
  • m2 : belugas@6287:
      belugas@6287:
    • for company statue (m5 = 02), TownID on which the statue is built in
    • belugas@6287:
    belugas@6287:
  • belugas@6287:
  • m5 : tile type: belugas@6029: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6180: belugas@6029:
    00  transmitter
    01  lighthouse
    02  company statue
    03  company-owned land
    80..93  company headquarters (5 sets of 4 tiles each, updated quarterly depending on the company performance)
    belugas@6029:
  • belugas@6184:
  • m6 bits 7..6 : Possibility of a bridge above, in the direction specified
  • belugas@6184:
  • m6 bits 1..0 : Tropic zone definition
  • belugas@6029:
belugas@6029:
Classes B through F are reserved. The presence belugas@6180: of a tile in one of the reserved classes will crash OTTD.
pasky@464: pasky@464: belugas@6029:
belugas@6029: Original Copyright © 2003 by Marcin Grzegorczyk for TTDLX.
belugas@6029: Transport Tycoon and Transport Tycoon Deluxe are Copyright © by Chris Sawyer.
belugas@6029: All the other trademarks are the property of their respective owners.
belugas@6029: pasky@464: pasky@464: