The m4nfo User manual and Technical Report

Industry tiles

Defining properties for and handling of industry tiles

Introduction

Industry tiles are used to compose industries. The code for industry tiles consists of three parts:

The definition sets the feature properties of the industry tile like climate availability, cargo types and amounts, etc. Please note that an industry tile definition may only occur after a prior grfinit() function call for the grf file.

The industry tile performance functions are used to group sets of graphics sprites from a previous spriteblock(), or to evaluate game-intrinsic variables, and make both of them accessible to the industry tile's activation function.

The industry tile activation instantiates the industry tile by finally assigning graphics sets and/or callback or other variable-referencing functions to this particular industry tile-ID. This is done by supplying a list of references to the industry tile's activation function. See below.

Functions

FunctionMeaning
defineindustrytile(<Industrytile-ID>, <block>)Industry tile definition
makeindustrytile(<Industrytile-ID>, <List::ref()>)Industry tile activation

Description

defineindustrytile(<Industrytile-ID>, <block>)

This function defines an industry tile. Its parameters are the industry tile's ID and a block of property-defining functions, where the relative position of the property functions is irrelevant.

Example (salt works tile 1):
defineindustrytile(_SALTER1,
	substitutetype(_OILRIG)
	cargoamounts(0, 0, 0)
	flags(ONWATER)
	callbacks(CB_FOUNDATION, CB_FRAME, CB_SPEED)
	anim_info(234, LOOP)
	anim_speed(3)
	animtriggers(SYNCHRON)
)

makeindustrytile(<Industrytile-ID>, <List::ref()>)

This function activates a previously defined industrytile. Its parameters are an industrytile-ID and a list of references. The number of references given must match the number of industrytiles to assign the references, respectively the number of consecutive industry tile-IDs allocated internally:

Example (salt works tiles):
makeindustrytile(_SALTER1, ref(10))
makeindustrytile(_SALTER2, ref(11), ref(12), ref(13))