<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://newgrf-specs.tt-wiki.net/index.php?action=history&amp;feed=atom&amp;title=NML%3AOld_style_callbacks</id>
	<title>NML:Old style callbacks - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://newgrf-specs.tt-wiki.net/index.php?action=history&amp;feed=atom&amp;title=NML%3AOld_style_callbacks"/>
	<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;action=history"/>
	<updated>2026-04-25T05:37:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=4257&amp;oldid=prev</id>
		<title>Heresy: Changed the appropriate tables from t to sortable.</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=4257&amp;oldid=prev"/>
		<updated>2022-08-30T21:20:46Z</updated>

		<summary type="html">&lt;p&gt;Changed the appropriate tables from t to sortable.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:20, 30 August 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Callbacks for vehicles==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Callbacks for vehicles==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t&lt;/del&gt;&quot;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wikitable sortable&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! name&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! name&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! bit to set in callback_flags property&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! bit to set in callback_flags property&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 118:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 118:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In order to set properties for vehicles via callback &amp;lt;code&amp;gt;VEH_CB_VEHICLE_PROPERTIES&amp;lt;/code&amp;gt; it&#039;s necessary to query the general variable &amp;lt;code&amp;gt;extra_callback_info1&amp;lt;/code&amp;gt; which can take different values depending upon the vehicle type:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In order to set properties for vehicles via callback &amp;lt;code&amp;gt;VEH_CB_VEHICLE_PROPERTIES&amp;lt;/code&amp;gt; it&#039;s necessary to query the general variable &amp;lt;code&amp;gt;extra_callback_info1&amp;lt;/code&amp;gt; which can take different values depending upon the vehicle type:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t&lt;/del&gt;&quot;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wikitable sortable&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! property&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! property&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! available for&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! available for&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 215:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 215:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Industry Tile Callbacks==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Industry Tile Callbacks==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t&lt;/del&gt;&quot;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wikitable sortable&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Callback&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Callback&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Values&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Values&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 255:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 255:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Industry callback flags==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Industry callback flags==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t&lt;/del&gt;&quot;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wikitable sortable&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! callback and callback flag&amp;lt;br /&amp;gt; IND_CB_XXX and IND_CBF_XXX&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! callback and callback flag&amp;lt;br /&amp;gt; IND_CB_XXX and IND_CBF_XXX&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! return values&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! return values&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 322:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 322:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Cargo callbacks==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Cargo callbacks==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t&lt;/del&gt;&quot;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wikitable sortable&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! value&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! value&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! description&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! description&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 335:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 335:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Object callbacks==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Object callbacks==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t&lt;/del&gt;&quot;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wikitable sortable&lt;/ins&gt;&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Name&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Name&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Meaning&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Meaning&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Heresy</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=2526&amp;oldid=prev</id>
		<title>FooBar: less code tags in table header ;)</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=2526&amp;oldid=prev"/>
		<updated>2011-08-26T16:27:12Z</updated>

		<summary type="html">&lt;p&gt;less code tags in table header ;)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:27, 26 August 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;t&quot;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&quot;t&quot;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/del&gt;name&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! name&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! bit to set in callback_flags property&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! bit to set in callback_flags property&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! available for&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! available for&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>FooBar</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=2521&amp;oldid=prev</id>
		<title>Planetmaker: some code tags. More needed</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=2521&amp;oldid=prev"/>
		<updated>2011-08-26T08:33:59Z</updated>

		<summary type="html">&lt;p&gt;some code tags. More needed&lt;/p&gt;
&lt;a href=&quot;https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;amp;diff=2521&amp;amp;oldid=2449&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Planetmaker</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=2449&amp;oldid=prev</id>
		<title>FooBar: add nav template</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=2449&amp;oldid=prev"/>
		<updated>2011-08-21T16:58:23Z</updated>

		<summary type="html">&lt;p&gt;add nav template&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:58, 21 August 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{NMLNavNoSubpages}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This page contains information about the classical way of defining callbacks, which is handling them within a chain of switch-blocks. It is not recommended to use this method, but it is still supported for backwards compatibility, (temporary) support for nfo-&amp;amp;gt;nml converted grfs and because it may be useful in some cases. Do not use this for new NewGRFs unless you have a really good reason to do so. Note that this page is no longer updated, the information here may be out of date.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This page contains information about the classical way of defining callbacks, which is handling them within a chain of switch-blocks. It is not recommended to use this method, but it is still supported for backwards compatibility, (temporary) support for nfo-&amp;amp;gt;nml converted grfs and because it may be useful in some cases. Do not use this for new NewGRFs unless you have a really good reason to do so. Note that this page is no longer updated, the information here may be out of date.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>FooBar</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=2349&amp;oldid=prev</id>
		<title>FooBar: moved NML:Old to NML:Old style callbacks:&amp;#32;NML:Old wasn&#039;t a very good page name to begin with</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=2349&amp;oldid=prev"/>
		<updated>2011-08-21T12:25:41Z</updated>

		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/wiki/NML:Old&quot; class=&quot;mw-redirect&quot; title=&quot;NML:Old&quot;&gt;NML:Old&lt;/a&gt; to &lt;a href=&quot;/wiki/NML:Old_style_callbacks&quot; title=&quot;NML:Old style callbacks&quot;&gt;NML:Old style callbacks&lt;/a&gt;: NML:Old wasn&amp;#039;t a very good page name to begin with&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:25, 21 August 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>FooBar</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=2348&amp;oldid=prev</id>
		<title>FooBar: content of nml r1625</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=NML:Old_style_callbacks&amp;diff=2348&amp;oldid=prev"/>
		<updated>2011-08-21T12:24:48Z</updated>

		<summary type="html">&lt;p&gt;content of nml r1625&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This page contains information about the classical way of defining callbacks, which is handling them within a chain of switch-blocks. It is not recommended to use this method, but it is still supported for backwards compatibility, (temporary) support for nfo-&amp;amp;gt;nml converted grfs and because it may be useful in some cases. Do not use this for new NewGRFs unless you have a really good reason to do so. Note that this page is no longer updated, the information here may be out of date.&lt;br /&gt;
&lt;br /&gt;
==General callbacks==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! name&lt;br /&gt;
! use&lt;br /&gt;
|-&lt;br /&gt;
| CB_RANDOM_TRIGGER&lt;br /&gt;
| re-randomize random data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This callback may be called for all items that have triggers associated with them. See [[NML:Random switch|random switch]] for more information.&lt;br /&gt;
&lt;br /&gt;
==Callbacks for vehicles==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! name&lt;br /&gt;
! bit to set in callback_flags property&lt;br /&gt;
! available for&lt;br /&gt;
! return value&lt;br /&gt;
! use&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_VISUAL_EFFECT_AND_POWERED&lt;br /&gt;
| VEH_CBF_VISUAL_EFFECT_AND_POWERED&lt;br /&gt;
| Trains&lt;br /&gt;
| See property &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;visual_effect_and_powered&amp;lt;/code&amp;gt;&lt;br /&gt;
| decide the visual effect to use and whether a wagon has power&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_VISUAL_EFFECT&lt;br /&gt;
| VEH_CBF_VISUAL_EFFECT&lt;br /&gt;
| Road Vehicles, Ships&lt;br /&gt;
| See property &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;visual_effect&amp;lt;/code&amp;gt;&lt;br /&gt;
| decide the visual effect to use (road vehicles / ships)&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_WAGON_LENGTH&lt;br /&gt;
| VEH_CBF_WAGON_LENGTH&lt;br /&gt;
| Trains, Road Vehicles&lt;br /&gt;
| See train property &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;shorten_vehicle&amp;lt;/code&amp;gt;&lt;br /&gt;
| decide upon the length of the wagon (note: RVs have no equivalent property)&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_LOAD_AMOUNT&lt;br /&gt;
| VEH_CBF_LOAD_AMOUNT&lt;br /&gt;
| All&lt;br /&gt;
| See property &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;loading_speed&amp;lt;/code&amp;gt;&lt;br /&gt;
| decide upon the loading speed (amount loaded per tick)&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_REFITTED_CAPACITY&lt;br /&gt;
| VEH_CBF_REFITTED_CAPACITY&lt;br /&gt;
| All&lt;br /&gt;
| Cargo capacity 0 ... 255&lt;br /&gt;
| decide upon the capacity after refit&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_ARTICULATED_PARTS&lt;br /&gt;
| VEH_CBF_ARTICULATED_PARTS&lt;br /&gt;
| Trains, Road Vehicles&lt;br /&gt;
| ID of vehicle to attach, 0xFF if none&lt;br /&gt;
| decide upon the ID of the next vehicle added to the articulated vehicle chain&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_CARGO_SUFFIX&lt;br /&gt;
| VEH_CBF_CARGO_SUFFIX&lt;br /&gt;
| All&lt;br /&gt;
| string&lt;br /&gt;
| decide upon cargo subtype display for refit&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_CAN_ATTACH_WAGON&lt;br /&gt;
| None&lt;br /&gt;
| Trains&lt;br /&gt;
| string containing error message, or one of the following: 0xFD (disallow with message &amp;quot;incomatible railtypes&amp;quot;), 0xFE (allow) or 0xFF (allow if railtypes match)&lt;br /&gt;
| decide whether a wagon can be attached&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_TEXT_PURCHASE_SCREEN&lt;br /&gt;
| None&lt;br /&gt;
| All&lt;br /&gt;
| string&lt;br /&gt;
| decide upon an additional text for the purchase screen&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_COLOUR_MAPPING&lt;br /&gt;
| VEH_CBF_COLOUR_MAPPING&lt;br /&gt;
| All&lt;br /&gt;
| sprite number&lt;br /&gt;
| decide upon the colour mapping instead of company colour&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_START_STOP_CHECK&lt;br /&gt;
| None&lt;br /&gt;
| All&lt;br /&gt;
| string containing error message, or 0xFF to allow&lt;br /&gt;
| decide whether a vehicle may be started/stopped.&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_32DAY&lt;br /&gt;
| None&lt;br /&gt;
| All&lt;br /&gt;
| bitmask&lt;br /&gt;
|&lt;br /&gt;
Triggers one or both of Trigger vehicle trigger 10 (bit 0) and Update colour map via VEH_CB_COLOUR_MAPPING (bit 1)&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_SOUND_EFFECT&lt;br /&gt;
| None&lt;br /&gt;
| All&lt;br /&gt;
| sound effect number&lt;br /&gt;
| decide whether and which sound is being played for certain situations&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_AUTOREPLACE_SELECT&lt;br /&gt;
| None&lt;br /&gt;
| All&lt;br /&gt;
| vehicle ID&lt;br /&gt;
| decide upon appropriate replacement vehicles (not implemented in OpenTTD)&lt;br /&gt;
|-&lt;br /&gt;
| VEH_CB_VEHICLE_PROPERTIES&lt;br /&gt;
| None&lt;br /&gt;
| All&lt;br /&gt;
| property-dependent&lt;br /&gt;
| Change vehicle properties, see below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In order to set properties for vehicles via callback &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;VEH_CB_VEHICLE_PROPERTIES&amp;lt;/code&amp;gt; it&amp;#039;s necessary to query the general variable &amp;lt;code style=&amp;quot;color:darkgreen&amp;quot;&amp;gt;extra_callback_info1&amp;lt;/code&amp;gt; which can take different values depending upon the vehicle type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! property&lt;br /&gt;
! available for&lt;br /&gt;
! value&lt;br /&gt;
|-&lt;br /&gt;
| cost_factor&lt;br /&gt;
| all&lt;br /&gt;
| PROP_XXX_COST_FACTOR&lt;br /&gt;
|-&lt;br /&gt;
| running_cost_factor&lt;br /&gt;
| all&lt;br /&gt;
| PROP_XXX_RUNNING_COST_FACTOR&lt;br /&gt;
|-&lt;br /&gt;
| speed&lt;br /&gt;
| all&lt;br /&gt;
| PROP_XXX_SPEED&lt;br /&gt;
|-&lt;br /&gt;
| power&lt;br /&gt;
| trains and road vehicles&lt;br /&gt;
| PROP_XXX_POWER&lt;br /&gt;
|-&lt;br /&gt;
| weight&lt;br /&gt;
| trains and road vehicles&lt;br /&gt;
| PROP_XXX_WEIGHT&lt;br /&gt;
|-&lt;br /&gt;
| tractive_effort_coefficient&lt;br /&gt;
| trains and road vehicles&lt;br /&gt;
| PROP_XXX_TRACTIVE_EFFORT_COEFFICIENT&lt;br /&gt;
|-&lt;br /&gt;
| cargo_capacity&lt;br /&gt;
| all except aircraft&lt;br /&gt;
| PROP_XXX_CARGO_CAPACITY&lt;br /&gt;
|-&lt;br /&gt;
| passenger_capacity&lt;br /&gt;
| aircraft&lt;br /&gt;
| PROP_AIRCRAFT_PASSENGER_CAPACITY&lt;br /&gt;
|-&lt;br /&gt;
| mail_capacity&lt;br /&gt;
| aircraft&lt;br /&gt;
| PROP_AIRCRAFT_MAIL_CAPACITY&lt;br /&gt;
|-&lt;br /&gt;
| bitmask_vehicle_info&lt;br /&gt;
| trains&lt;br /&gt;
| PROP_TRAINS_BITMASK_VEHICLE_INFO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Where for the properties available for all vehicle types XXX can either be TRAINS, ROADVEHS, SHIPS or AIRCRAFT. Note also that the return values don&amp;#039;t yet support units, you&amp;#039;ll need to enter the properties untranslated (e.g. road vehicle weights are in quantities of 0.25 tons).&lt;br /&gt;
&lt;br /&gt;
The following code is an example for the use of callbacks and most notably also the creation of articulated vehicles which can only be created by means of the VEH_CB_ARTICULATED_PARTS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:blue&amp;quot;&amp;gt;&lt;br /&gt;
 /* Here would have to be definition of sprite sets and groups */&lt;br /&gt;
 &lt;br /&gt;
 /* callback for articulated vehicles: 4 wagons with special sprites for first and last */&lt;br /&gt;
 switch(FEAT_TRAINS, SELF, rail_engine_articulated_parts, extra_callback_info1) {&lt;br /&gt;
     1..2: return rail_wagon; // middle parts use rail wagons&lt;br /&gt;
 	3: return rail_engine;   // last part is this rail engine again&lt;br /&gt;
     CB_FAILED;               // no more than 4 vehicles&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /* Set the (empty) weight of the vehicle depending on the cargo it carries */&lt;br /&gt;
 switch (FEAT_TRAINS, SELF, rail_wagon_cb_property_weight_switch, cargo_type_in_veh) {&lt;br /&gt;
     PASS: return 30; // Passenger wagons are heavier&lt;br /&gt;
     TOUR: return 30; // Tourists are also passengers&lt;br /&gt;
     CB_FAILED;       // use value set in the property block for other cargos&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /* Set (conditionally) different properties of the train */&lt;br /&gt;
 switch (FEAT_TRAINS, SELF, rail_engine_cb_property_switch, extra_callback_info1) {&lt;br /&gt;
     PROP_TRAINS_WEIGHT          : rail_engine_cb_property_weight_switch;&lt;br /&gt;
     PROP_TRAINS_CARGO_CAPACITY  : rail_engine_cb_capacity_switch; // not shown here&lt;br /&gt;
     CB_FAILED;                                                    // we don&amp;#039;t set other properties&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /* Check for each (active) callback */&lt;br /&gt;
 switch (FEAT_TRAINS, SELF, rail_engine_switch, current_callback) {&lt;br /&gt;
     VEH_CB_REFITTED_CAPACITY:  rail_engine_cb_capacity_switch; // switch not shown here&lt;br /&gt;
     VEH_CB_VEHICLE_PROPERTIES: rail_engine_cb_property_switch;&lt;br /&gt;
     VEH_CB_ARTICULATED_PARTS: rail_engine_articulated_parts;&lt;br /&gt;
     rail_engine_graphics_switch; // go to graphics branch, if no callback asked for; not shown here&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /* Define this rail engine */&lt;br /&gt;
 item(FEAT_TRAINS, rail_engine) {&lt;br /&gt;
     property {&lt;br /&gt;
         callback_flags:                 bitmask(VEH_CBF_ARTICULATED_PARTS, VEH_CBF_REFITTED_CAPACITY); // activate callbacks&lt;br /&gt;
         cargo_capacity:                 20;&lt;br /&gt;
         weight:                         24 ton;&lt;br /&gt;
     }&lt;br /&gt;
     graphics {&lt;br /&gt;
         rail_engine_switch;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Industry Tile Callbacks==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! Callback&lt;br /&gt;
! Values&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| INDTILE_CB_ANIM_STARTSTOP&lt;br /&gt;
| animation frame or CB_RESULT_XXX&lt;br /&gt;
| Called by a trigger. It decides upon the next animation frame. Special values: XXX=[STOP_ANIMATION | NEXT_FRAME | DO_NOTHING]&lt;br /&gt;
|-&lt;br /&gt;
| INDTILE_CB_ANIM_NEXT_FRAME&lt;br /&gt;
| animation frame or CB_RESULT_XXX&lt;br /&gt;
| Called each animation frame. It decides upon the next animation frame. Special values: XXX=[STOP_ANIMATION | NEXT_FRAME]&lt;br /&gt;
|-&lt;br /&gt;
| INDTILE_CB_ANIM_SPEED&lt;br /&gt;
| length&lt;br /&gt;
| Length of the animation frame as defined in the apendix. This is a very expensive callback and try to avoid it, if possible, by using identical animation frames.&lt;br /&gt;
|-&lt;br /&gt;
| INDTILE_CB_CARGO_AMOUNT_ACCEPT&lt;br /&gt;
| special&lt;br /&gt;
| accepted cargo amounts in 1/8. Bits 0...3: 1st cargo, bits 4 ... 7: 2nd cargo, bits 8 ... 11: 3rd cargo&lt;br /&gt;
|-&lt;br /&gt;
| INDTILE_CB_CARGO_TYPE_ACCEPT&lt;br /&gt;
| special&lt;br /&gt;
| accepted cargo types as entry in the CTT. Bits 0...4: 1st cargo, bits 5 ... 9: 2nd cargo, bits 10 ... 14: 3rd cargo&lt;br /&gt;
|-&lt;br /&gt;
| INDTILE_CB_SLOPE_IS_SUITABLE&lt;br /&gt;
|&lt;br /&gt;
| decide whether the location is suitable for the tile (for build checks of the industry)&lt;br /&gt;
|-&lt;br /&gt;
| INDTILE_CB_FOUNDATIONS&lt;br /&gt;
| CB_RESULT_XXX&lt;br /&gt;
| with XXX=[FOUNDATIONS | NO_FOUNDATIONS]&lt;br /&gt;
|-&lt;br /&gt;
| INDTILE_CB_AUTOSLOPE&lt;br /&gt;
| CB_RESULT_XXX&lt;br /&gt;
| with XXX=[AUTOSLOPE | NO_AUTOSLOPE]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Industry callback flags==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! callback and callback flag&amp;lt;br /&amp;gt; IND_CB_XXX and IND_CBF_XXX&lt;br /&gt;
! return values&lt;br /&gt;
! meaning&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_AVAILABILITY&lt;br /&gt;
| CB_RESULT_IND_ALLOW&amp;lt;br /&amp;gt;CB_RESULT_IND_DISALLOW&lt;br /&gt;
| decide upon availability of the industry type.&amp;lt;br /&amp;gt; extra_callback_info_2 allows to get information on how the industry is being built:&amp;lt;br /&amp;gt; 0: during map generation&amp;lt;br /&amp;gt;1: random generation ingame&amp;lt;br /&amp;gt;2: user trying to fund or prospect the industry&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
IND_CBF_PROD_CB_CARGO_ARRIVE&amp;lt;br /&amp;gt;(no callback, use [[NML:Produce|produce block]])&lt;br /&gt;
| n/a (use produce block)&lt;br /&gt;
| handle production when cargo is delivered. See produce block&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
IND_CBF_PROD_CB_256_TICKS&amp;lt;br /&amp;gt;(no callback, use [[NML:Produce|produce block]])&lt;br /&gt;
| n/a (use produce block)&lt;br /&gt;
| handle production every 256 ticks. See produce block&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_LOCATION_CHECK&lt;br /&gt;
| string&amp;lt;br /&amp;gt; CB_RESULT_IND_ALLOW_LOCATION&amp;lt;br /&amp;gt; CB_RESULT_IND_DISALLOW_UNSUITABLE&amp;lt;br /&amp;gt; CB_RESULT_IND_DISALLOW_ONLY_RAINFOREST&amp;lt;br /&amp;gt; CB_RESULT_IND_DISALLOW_ONLY_DESERT&lt;br /&gt;
| handle check for permissible build locations&amp;lt;br /&amp;gt; extra_callback_info_2 allows to get information on how the industry is being built:&amp;lt;br /&amp;gt; 0: during map generation&amp;lt;br /&amp;gt;1: random generation ingame&amp;lt;br /&amp;gt;2: user trying to fund the industry&amp;lt;br /&amp;gt; 3: user trying to prospect the industry&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_RANDOM_PROD_CHANGE&lt;br /&gt;
| see monthly production changes below&lt;br /&gt;
| handle random production changes&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_MONTHLY_PROD_CHANGE&lt;br /&gt;
| CB_RESULT_IND_PROD_NO_CHANGE&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_HALF&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_DOUBLE&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_CLOSE&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_RANDOM&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_DIVIDE_BY_4&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_DIVIDE_BY_8&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_DIVIDE_BY_16&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_DIVIDE_BY_32&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_MULTIPLY_BY_4&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_MULTIPLY_BY_8&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_MULTIPLY_BY_16&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_MULTIPLY_BY_32&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_DECREMENT_BY_1&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_INCREMENT_BY_1&amp;lt;br /&amp;gt; CB_RESULT_IND_PROD_SET_BY_0x100&amp;lt;br /&amp;gt;&lt;br /&gt;
| handle monthly production changes&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_CARGO_SUBTYPE_DISPLAY&lt;br /&gt;
| string&lt;br /&gt;
| decide on displayed cargo subtypes&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_EXTRA_TEXT_FUND&lt;br /&gt;
| string&lt;br /&gt;
| decide on extra text displayed in industry funding window&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_EXTRA_TEXT_INDUSTRY&lt;br /&gt;
| string&lt;br /&gt;
| decide on extra text in the industry window&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_CONTROL_SPECIAL&lt;br /&gt;
| CB_RESULT_IND_DO_NOT_USE_SPECIAL&amp;lt;br /&amp;gt;CB_RESULT_IND_USE_SPECIAL&lt;br /&gt;
| decide whether the special defined in spec_flags shall be used or not&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_STOP_ACCEPT_CARGO&lt;br /&gt;
|&lt;br /&gt;
| decide on cargo acceptance&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_COLOUR&lt;br /&gt;
| 0...15&lt;br /&gt;
|&lt;br /&gt;
decide on industry colour. See also [[NML:List of default colour translation palettes|the palettes]]. DARK_BLUE (#775) corresponds to the colour 0.&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_CARGO_INPUT&lt;br /&gt;
| cargo label&lt;br /&gt;
| decide on accepted cargo types. extra_callback_info_1 gives the input cargo number. Return 0xFF for any other value than 0, 1 or 2 for extra_callback_info_1.&lt;br /&gt;
|-&lt;br /&gt;
| IND_CBF_CARGO_OUTPUT&lt;br /&gt;
| cargo label&lt;br /&gt;
| decide on output cargo types. extra_callback_info_1 gives the output cargo number. Return 0xFF for any other value than 0 or 1 for extra_callback_info_1.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Cargo callbacks==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! value&lt;br /&gt;
! description&lt;br /&gt;
|-&lt;br /&gt;
| CARGO_CB_PROFIT&lt;br /&gt;
| Custom profit calculation&lt;br /&gt;
|-&lt;br /&gt;
| CARGO_CB_STATION_RATING&lt;br /&gt;
| Custom station rating calculation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Object callbacks==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;t&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| OBJ_CB_SLOPE_CHECK&lt;br /&gt;
| Check for the slope of a tile&lt;br /&gt;
|-&lt;br /&gt;
| OBJ_CB_DECIDE_ANIM&lt;br /&gt;
| Decide whether animation continues: 0xFF stops animation, 0xFE continues with next frame&lt;br /&gt;
|-&lt;br /&gt;
| OBJ_CB_DECIDE_ANIM_SPEED&lt;br /&gt;
| Decide the animation frame to jump to. Or alternatively: 0xFF to stop animation, 0xFE to start animation with current frame, 0xFD to keep the current animation frame and do nothing&lt;br /&gt;
|-&lt;br /&gt;
| OBJ_CB_DECIDE_COLOUR&lt;br /&gt;
| Return the colour, or for 2 company colours the two colours, to be used. In the case of 2CC the 2nd company colour goes into the high 4 bits of the return value&lt;br /&gt;
|-&lt;br /&gt;
| OBJ_CB_ADDITIONAL_TEXT&lt;br /&gt;
| Return an additional string which is shown in the purchase menu. It should not exceed in length three lines.&lt;br /&gt;
|-&lt;br /&gt;
| OBJ_CB_AUTOSLOPE&lt;br /&gt;
| Return a value different from 0 in order to disable autoslope behaviour.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FooBar</name></author>
	</entry>
</feed>