// Automatically generated by GRFCODEC. Do not modify!
// (Info version 7)
// Escapes: 2+ 2- 2< 2> 2u< 2u> 2/ 2% 2u/ 2u% 2* 2& 2| 2^ 2sto = 2s 2rst = 2r 2psto 2ror = 2rot 2cmp 2ucmp 2<< 2u>> 2>>
// Escapes: 71 70 7= 7! 7< 7> 7G 7g 7gG 7GG 7gg 7c 7C
// Escapes: D= = DR D+ = DF D- = DC Du* = DM D* = DnF Du<< = DnC D<< = DO D& D| Du/ D/ Du% D%
// Format: spritenum pcxfile xpos ypos compression ysize xsize xrel yrel
0 * 4	 6C 1F 00 00

// Industrial Stations Renewal for OpenTTD.
// Copyright © 2006-2015 the ISR contributors (see "readme.txt" for credits).

// This program is free software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the Free Software Foundation;
// either version 2 of the License, or (at your option) any later version.

// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.

// You should have received a copy of the GNU General Public License along with this program;
// if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
// Boston, MA 02110-1301 USA.

1 * 148	 14
"C" "INFO"
"B" "VRSN" \w4 \d6015
"B" "MINV" \w4 \d5182
"B" "PALS" \w1 "W"
"T" "URL_" 7F "http://dev.openttdcoop.org/projects/isr" 00
"B" "NPAR" \w1 \b2
"C" "PARA"
"C" \d0
"B" "TYPE" \w1 01 // boolean
"B" "DFLT" \w4 \d0
00
"C" \d1
"B" "TYPE" \w1 01 // boolean
"B" "DFLT" \w4 \d1
00
00
00
00
2 * 587	 14
"C" "INFO"
"T" "DESC" 7F C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " provides a range of pre-defined cargo stations and a wide range of individual station tiles geared towards those." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 7F C3 9E "Disable custom dock" 00
"T" "DESC" 7F C3 9E "Enable this switch to use default docks." 00
00
"C" \d1
"T" "NAME" 7F C3 9E "Disable custom ship depot" 00
"T" "DESC" 7F C3 9E "Enable this switch to use default ship depot." 00
00
00
00
00
3 * 645	 14
"C" "INFO"
"T" "DESC" 02 C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " stellt eine Anzahl Güterbahnhöfe und spezifischer Bahnhofsfelder passend zu diesen zur Verfügung." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 02 C3 9E "Neuen Anleger nicht benutzen" 00
"T" "DESC" 02 C3 9E "Wenn dieser Parameter gesetzt wird, so wird der normale Anleger genutzt" 00
00
"C" \d1
"T" "NAME" 02 C3 9E "Neue Werft nicht benutzen" 00
"T" "DESC" 02 C3 9E "Wenn dieser Parameter gesetzt wird, so wird das normale Schiffsdepot genutzt" 00
00
00
00
00
4 * 655	 14
"C" "INFO"
"T" "DESC" 03 C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " vous fournit une gamme de gares de charge prédéfinis et une large gamme de pavés individuels à gare orientée vers ceux-là." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 03 C3 9E "Désactiver le quai coutume" 00
"T" "DESC" 03 C3 9E "Activer cette paramêtre afin d'avoir les quais en défaut." 00
00
"C" \d1
"T" "NAME" 03 C3 9E "Désactiver le dépôt navale" 00
"T" "DESC" 03 C3 9E "Activer cette paramêtre afin d'avoir le dépôt navale en défaut." 00
00
00
00
00
5 * 716	 14
"C" "INFO"
"T" "DESC" 04 C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " ofrece una amplia gama de estaciones de carga predefinidas así como todo un catalogo de edificios y otros componentes individuales que podrás añadir a las estaciones." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 04 C3 9E "Desactivar el muelle personalizado" 00
"T" "DESC" 04 C3 9E "Activa el conmutador para usar los muelles por defecto." 00
00
"C" \d1
"T" "NAME" 04 C3 9E "Desactivar el depósito de barcos personalizado" 00
"T" "DESC" 04 C3 9E "Activa el conmutador para usar el depósito de barcos por defecto." 00
00
00
00
00
6 * 612	 14
"C" "INFO"
"T" "DESC" 1F C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " geeft een aantal voorgedefinieerde goederenstations en een groot aantal losse stationstegels die hierop aansluiten." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 1F C3 9E "Schakel aangepaste haven uit" 00
"T" "DESC" 1F C3 9E "Schakel dit in om de standaard haven te gebruiken." 00
00
"C" \d1
"T" "NAME" 1F C3 9E "Schakel aangepast dok uit" 00
"T" "DESC" 1F C3 9E "Schakel dit in om het standaard dok te gebruiken." 00
00
00
00
00
7 * 568	 14
"C" "INFO"
"T" "DESC" 34 C3 9E 8E "Kaubajaama uuendus (ISR)" 98 " pakub erinevaid eelmääratletud kaubajaamu ja palju erinevaid neile suunatud lisasid." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 34 C3 9E "Keela tava dokk" 00
"T" "DESC" 34 C3 9E "Luba see lüliti, et kasutada tava laeva doki." 00
00
"C" \d1
"T" "NAME" 34 C3 9E "Keela kohandatud depoo laevadele" 00
"T" "DESC" 34 C3 9E "Luba see lüliti, et kasutada tava depood laevadele ." 00
00
00
00
00
8 * 598	 14
"C" "INFO"
"T" "DESC" 35 C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " tarjoaa valikoiman rahtiasemia, sekä niille suunnattuja yksittäisiä asemaruutuja." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 35 C3 9E "Käytä alkuperäistä laituria." 00
"T" "DESC" 35 C3 9E "Salli tämä käyttääksesi alkuperäistä laituria." 00
00
"C" \d1
"T" "NAME" 35 C3 9E "Käytä alkuperäistä telakkaa" 00
"T" "DESC" 35 C3 9E "Salli tämä käyttääksesi alkuperäistä telakkaa." 00
00
00
00
00
9 * 903	 14
"C" "INFO"
"T" "DESC" 07 C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " предоставляет готовые наборы станций, а также отдельные станционные элементы, их образующие" 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 07 C3 9E "Отключить графику пристани" 00
"T" "DESC" 07 C3 9E "Включите этот переключатель для использования стандартной пристани" 00
00
"C" \d1
"T" "NAME" 07 C3 9E "Отключить графику корабельного дока" 00
"T" "DESC" 07 C3 9E "Включите этот переключатель для использования стандартного корабельного дока" 00
00
00
00
00
10 * 624	 14
"C" "INFO"
"T" "DESC" 30 C3 9E 8E "Dodatkowe Stacje Przemysłowe (ISR)" 98 " oferuje zestaw zdefiniowanych stacji towarowych i dopasowanej do nich szeroką gamę pojedynczych elementów stacji." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 30 C3 9E "Deaktywuj niestandardowe doki" 00
"T" "DESC" 30 C3 9E "Włącz tę opcję, by używać zwykłych doków." 00
00
"C" \d1
"T" "NAME" 30 C3 9E "Deaktywuj niestandardowe stocznie" 00
"T" "DESC" 30 C3 9E "Włącz tę opcję, by używać zwykłych stoczni." 00
00
00
00
00
11 * 652	 14
"C" "INFO"
"T" "DESC" 38 C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " pruža niz predodređenih teretnih stanica i širok izbor individualnih polja stanica napravljenih prema njima." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 38 C3 9E "Isključuje uobičajeni dok" 00
"T" "DESC" 38 C3 9E "Uključite ovaj prekidač da bi koristili originalne dokove." 00
00
"C" \d1
"T" "NAME" 38 C3 9E "Isključuje uobičajeni depo za brodove" 00
"T" "DESC" 38 C3 9E "Uključite ovaj prekidač da bi koristili originalne depoe za brodove." 00
00
00
00
00
12 * 662	 14
"C" "INFO"
"T" "DESC" 24 C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " egy sor elõre elkészített teherpályaudvart és számos egyedi állomásmezõt biztosít, hogy továbbfejleszthesd azokat." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 24 C3 9E "Kikapcsolja az egyedi kikötõt" 00
"T" "DESC" 24 C3 9E "Ha ez engedélyezve van, akkor az eredeti kikötõt használja." 00
00
"C" \d1
"T" "NAME" 24 C3 9E "Kikapcsolja az egyedi hajódokkot" 00
"T" "DESC" 24 C3 9E "Ha ez engedélyezve van, akkor az eredeti hajódokkot használja." 00
00
00
00
00
13 * 690	 14
"C" "INFO"
"T" "DESC" 3A C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " 은 간편하게 만들 수 있는 다양한 화물 관련 역사와 그에 맞도록 설계된 많은 역 조각을 제공합니다." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 3A C3 9E "항구 디자인 바꾸지 않기" 00
"T" "DESC" 3A C3 9E "기본 항구 디자인을 사용하려면 이 옵션을 켜십시오." 00
00
"C" \d1
"T" "NAME" 3A C3 9E "정박소 디자인 바꾸지 않기" 00
"T" "DESC" 3A C3 9E "기본 정박소 디자인을 사용하려면 이 옵션을 켜십시오." 00
00
00
00
00
14 * 624	 14
"C" "INFO"
"T" "DESC" 56 C3 9E 8E "工业车站补充套件 (Industrial Stations Renewal, 简称 ISR)" 98 " 提供一套多元化、涵盖不同货物种类的货运车站及相关设施的地块。" 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 56 C3 9E "禁用自定义码头" 00
"T" "DESC" 56 C3 9E "启用此选项以使用系统默认的码头图形集。" 00
00
"C" \d1
"T" "NAME" 56 C3 9E "禁用自定义船坞" 00
"T" "DESC" 56 C3 9E "启用此选项以使用系统默认的船坞图形集。" 00
00
00
00
00
15 * 659	 14
"C" "INFO"
"T" "DESC" 13 C3 9E 8E "Bheir Industrial Stations Renewal (ISR)" 98 " dhut roghainn dhe stèiseanan carago air am mìneachadh ro làimh is sàr-roghainn dhe leacagan stèisein air an son." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 13 C3 9E "Cuir port gnàthaichte à comas" 00
"T" "DESC" 13 C3 9E "Cuir an suidse seo an comas gus puirt bhunaiteach a chleachdadh." 00
00
"C" \d1
"T" "NAME" 13 C3 9E "Cuir cala gnàthaichte à comas" 00
"T" "DESC" 13 C3 9E "Cuir an suidse seo an comas gus an cala bunaiteach a chleachdadh." 00
00
00
00
00
16 * 652	 14
"C" "INFO"
"T" "DESC" 0D C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " pruža niz predodređenih teretnih stanica i širok izbor individualnih polja stanica napravljenih prema njima." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 0D C3 9E "Isključuje uobičajeni dok" 00
"T" "DESC" 0D C3 9E "Uključite ovaj prekidač da bi koristili originalne dokove." 00
00
"C" \d1
"T" "NAME" 0D C3 9E "Isključuje uobičajeni depo za brodove" 00
"T" "DESC" 0D C3 9E "Uključite ovaj prekidač da bi koristili originalne depoe za brodove." 00
00
00
00
00
17 * 657	 14
"C" "INFO"
"T" "DESC" 23 C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " stellt eng Rei firdefinéiert Wuerenstatiounen an e Koup individuell Statiounsdeeler fir déi ze erweideren zur Verfügung" 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 23 C3 9E "Individuellen Quai ausschalten" 00
"T" "DESC" 23 C3 9E "Schalt dës Optioun un fir Standardquaien ze benotzen" 00
00
"C" \d1
"T" "NAME" 23 C3 9E "Individuellen Schëffsdepot ausschalten" 00
"T" "DESC" 23 C3 9E "Schalt dës Optioun un fir déi standard Schëffsdepoter ze benotzen" 00
00
00
00
00
18 * 586	 14
"C" "INFO"
"T" "DESC" 2F C3 9E 8E "Industrial Stations Renewal (ISR)" 98 " gir deg en rekke ferdigbygde industristasjoner og masse individuelle stasjonsbiter å bruke samme med de." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 2F C3 9E "Slå av tilpasset havn" 00
"T" "DESC" 2F C3 9E "Slå på denne for å bruke vanlig havn." 00
00
"C" \d1
"T" "NAME" 2F C3 9E "Slå av tilpasset skipsdepot" 00
"T" "DESC" 2F C3 9E "Slå på denne for å bruke vanlig skipsdepot." 00
00
00
00
00
19 * 648	 14
"C" "INFO"
"T" "DESC" 0C C3 9E 8E "工業車站補充套件 (Industrial Stations Renewal, 簡稱 ISR)" 98 " 提供一套多元化、涵蓋不同貨物種類的貨運車站及相關設施的地塊。" 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 0C C3 9E "停用自訂碼頭圖形" 00
"T" "DESC" 0C C3 9E "如果啟用此選項，遊戲會使用預設的碼頭圖形集。" 00
00
"C" \d1
"T" "NAME" 0C C3 9E "停用自訂船塢圖形" 00
"T" "DESC" 0C C3 9E "如果啟用此選項，遊戲會使用預設的船塢圖形集。" 00
00
00
00
00
20 * 667	 14
"C" "INFO"
"T" "DESC" 27 C3 9E 8E "Il set delle Stazioni Industriali Rinnovate (ISR)" 98 " offre un insieme di stazioni merci predefinite, oltre a una vasta scelta di singoie parti di stazioni come complemento." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 27 C3 9E "Disabilita moli personalizzati" 00
"T" "DESC" 27 C3 9E "Attiva questo parametro per usare i moli di default." 00
00
"C" \d1
"T" "NAME" 27 C3 9E "Disabilita i nuovi depositi delle navi" 00
"T" "DESC" 27 C3 9E "Attiva questo parametro per usare i depositi delle navi di default." 00
00
00
00
00
21 * 644	 14
"C" "INFO"
"T" "DESC" 22 C3 9E 8E "Renovació de les Estacions Industrials (ISR)" 98 " ofereix un ventall d'estacions per a càrregues predefinides i una àmplia gamma de noves caselles d'estació." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: " 89 "GNU General Public License v2." 00
"C" "PARA"
"C" \d0
"T" "NAME" 22 C3 9E "Desactivar port personalitzat" 00
"T" "DESC" 22 C3 9E "Activar aquest botó per a emprar els ports per defecte." 00
00
"C" \d1
"T" "NAME" 22 C3 9E "Desactivar drassana personalitzada" 00
"T" "DESC" 22 C3 9E "Activar aquest botó per a emprar la drassana per defecte." 00
00
00
00
00

// Check we are loading in OTTD
22 * 9	 09 9D 04 \7= 01 00 00 00 02 // if OTTD skip 2
23 * 12	 0B 83 7F 02 "OpenTTD" 00
// For TTDPatch pre 2.0.1 alpha 66 disable with action B did not work, so...
24 * 6	 09 9A 01 \7! 00 F0 // skip to F0

// Check OpenTTD version >= 1.2.0 release
25 * 9	 09 A1 04 \7< 00 00 08 12 01 // if OTTD ver < 1.2.0 skip 1
26 * 6	 09 9A 01 \7! 00 02 // skip 2
27 * 10	 0B 03 7F 06 "1.2.0" 00 // show message and abort
28 * 6	 09 9A 01 \7! 00 F0 // skip to F0 (fatal error does not abort loading on early versions)

// Do the Action 8 dance.
29 * 443	 08 07 "JC" 00 02
"Industrial Stations Renewal v6015 (f56250cf20a3)" 00
8E "Industrial Stations Renewal (ISR)\98 provides a range of pre-defined "
"cargo stations and a wide range of individual station tiles geared towards those." 0D 0D
"Copyright 2006-2015" 0D
"Graphics:" " \89Sanchimaru\98, \89Oz\98, \89norfolksouthern37\98, \89Zimmlock\98, \89Ben_K\98, \89Born Acorn\98, \89mph\98, \89Arte Pro 34\98 and \89andythenorth\98." 0D "Coding:" " \89Maedhros\98, \89mart3p\98 and \89planetmaker\98." 0D 0D
"License: \89GNU General Public License v2." 00

30 * 9	 09 A1 04 \7! FF FF FF FF 01 // If OTTD ver != FFFF skip 1 (version not pre r11330)
31 * 6	 09 9A 01 \7! 00 F0 // skip to F0 (skip-to-0-to-disable did not work on some versions)

// This set will contain six classes:
// - "ISRA": Pre-built stations
// - "ISRI": Fixtures
// - "ISRR": Raw materials
// - "ISRP": Processed products
// - "ISRF": Facilities
// - "ISRS": Marshalling yard

// Cargo translation table
32 * 246	 00 08 01 3C 00 09
"PASS" // 00
"COAL" // 01
"MAIL" // 02
"OIL_" // 03
"LVST" // 04
"GOOD" // 05
"GRAI" // 06
"WOOD" // 07
"IORE" // 08
"STEL" // 09
"VALU" // 0A
"PAPR" // 0B
"FOOD" // 0C
"FRUT" // 0D
"CORE" // 0E
"WATR" // 0F
"RUBR" // 10
"WHEA" // 11
"MAIZ" // 12
"TWOD" // 13
"GOLD" // 14
"DIAM" // 15
"CLAY" // 16
"GRVL" // 17
"LIME" // 18
"SAND" // 19
"PETR" // 1A
"WDPR" // 1B
"COPR" // 1C
"LUMB" // 1D
"FISH" // 1E
"WOOL" // 1F
"GLAS" // 20
"CERA" // 21
"BRCK" // 22
"VEHI" // 23
"FERT" // 24
"DYES" // 25
"RFPR" // 26
"PLAS" // 27
"AORE" // 28
"BEER" // 29
"BDMT" // 2A
"ENSP" // 2B
"FICR" // 2C
"FMSP" // 2D
"FRVG" // 2E
"MILK" // 2F
"MNSP" // 30
"RCYC" // 31
"SCMT" // 32
"SGBT" // 33
"SGCN" // 34
"CERE" // 35
"OLSD" // 36
"SUGR" // 37
"JAVA" // 38
"BEAN" // 39
"NITR" // 3A
"VPTS" // 3B

// List of station ids
// Pre-built stations
// Fixtures
// Raw materials
// Processed materials
// Facilities
// Marshalling yard
// Parameters

// Parameter 0 controls the docks
// (0 - enables new graphics, 1 - disables new graphics)

// If parameter 0 = 0 check if newwaterw.grf is active
33 * 6	 09 00 01 \7= 01 03 // if p0 = 1 skip 3
34 * 9	 09 88 04 \7gg 62 70 01 02 02 // if not newwater skip 2
35 * 9	 09 88 04 \7G 62 70 01 02 01 // if newwater active skip 1 (we can overwrite the docks)
36 * 20	 0B 02 7F 05 "newwater(w).grf" 00 // error "indstatr.grf must be loaded after newwater(w).grf"

// Parameter 1 controls the ship depot
// (0 - enables new graphics, 1 - disables new graphics)

// Parameter controlling recolour sprites (see actionasprites.nfo)

// Parameter 10 - recolour sprite ID base

// Parameters controlling overlay graphics used dependent on the track type

// Parameters for railtypes GRFs
// Parameter 1A indicates that maglev has been replaced with a "normal" railtype
37 * 9	 0D 1A \D= FF FF 00 00 00 00 // set parameter 1A to 0
// Parameter 19 indicates that monorail has been replaced with a "normal" railtype
38 * 9	 0D 19 \D= FF FF 00 00 00 00 // set parameter 19 to 0
// Parameter 16 indicates a "fine scale" railtypes GRF is loaded
39 * 9	 0D 16 \D= FF FF 00 00 00 00 // set parameter 16 to 0
// Look for pb_trax
40 * 9	 09 88 04 \7gg 44 44 23 03 01 // if not pb_trax skip 1
41 * 9	 0D 16 \D= FF FF 01 00 00 00 // set parameter 16 to 01
// Look for xussr tracks
42 * 9	 09 88 04 \7gg 41 4B 41 08 03 // if not xussr skip 3
43 * 9	 0D 11 \D= 00 FE 41 4B 41 08 // set parameter 11 to xussr parameter 0
44 * 6	 09 11 04 \70 04 01 // if p11 bit 4 is off skip 1 (new tracks off)
45 * 9	 0D 16 \D= FF FF 01 00 00 00 // set parameter 16 to 01

// Parameters for track replacement GRFs
// Parameters 14 and 15 are used for old rail track sets which change track
// graphics using action A rather than using the railtypes feature.
// They are also used when a railtypes GRF replaces monorail or maglev.
// They are set by the detection of various track replacement GRFs.
// Parameter 14
//     02 - Monorail
//     04 - Normal rail
// Parameter 15
//     03 - Maglev
//     05 - Normal rail
46 * 9	 0D 15 \D= FF FF 03 00 00 00 // set parameter 15 to 03
47 * 9	 0D 14 \D= FF FF 02 00 00 00 // set parameter 14 to 02

// Parameter 13 is used to store the state of ngrails(w).grf parameter 2
48 * 9	 0D 13 \D= FF FF 00 00 00 00 // set parameter 13 to 0

// Check for FRISS
49 * 9	 09 88 04 \7gg 4A 56 02 01 02 // if not friss rails skip 2
50 * 9	 0D 19 \D= FF FF 01 00 00 00 // set parameter 19 to 01 (metro track replaces monorail)
51 * 9	 0D 14 \D= FF FF 00 00 00 00 // set parameter 14 to 04 (use normal rail overlay)

// Check for NuTracks
52 * 9	 09 88 04 \7gg 44 4A 54 01 06 // if not nutracks skip 6
53 * 9	 0D 11 \D= 16 FE 44 4A 54 01 // set parameter 11 to nutracks parameter 0x16 (22 - enable narrow gauge)
54 * 9	 09 11 04 \7! 01 00 00 00 04 // if p11 != 1 skip 4 (narrow gauge off)
55 * 9	 0D 1A \D= FF FF 01 00 00 00 // set parameter 1A to 01 (narrow gauge replaces maglev)
56 * 9	 0D 15 \D= FF FF 05 00 00 00 // set parameter 15 to 05 (use normal rail overlay)
57 * 9	 0D 19 \D= FF FF 01 00 00 00 // set parameter 19 to 01 (narrow gauge with catenary replaces monorail)
58 * 9	 0D 14 \D= FF FF 04 00 00 00 // set parameter 14 to 04 (use normal rail overlay)

// Look for Metro rails
59 * 9	 09 88 04 \7gg 58 53 4D 01 01 // if not metro rails skip 1
60 * 9	 0D 14 \D= FF FF 04 00 00 00 // set parameter 14 to 04

// Look for Metro Track Set
61 * 9	 09 88 04 \7gg FB FB 04 02 0E // if not metro track skip 14
62 * 9	 0D 17 \D= 04 FE FB FB 04 02 // set parameter 17 to metro track parameter 04
63 * 9	 0D 18 \D= 05 FE FB FB 04 02 // set parameter 18 to metro track parameter 05
64 * 9	 09 17 04 \7! 02 00 00 00 02 // if p17 != 2 skip 2
65 * 9	 0D 19 \D= FF FF 01 00 00 00 // set parameter 19 to 01 (metro track replaces monorail)
66 * 9	 0D 14 \D= FF FF 04 00 00 00 // set parameter 14 to 04
67 * 9	 09 17 04 \7! 03 00 00 00 02 // if p17 != 3 skip 2
68 * 9	 0D 1A \D= FF FF 01 00 00 00 // set parameter 1A to 01 (metro track replaces maglev)
69 * 9	 0D 15 \D= FF FF 05 00 00 00 // set parameter 15 to 05
70 * 9	 09 18 04 \7! 02 00 00 00 02 // if p18 != 2 skip 2
71 * 9	 0D 19 \D= FF FF 01 00 00 00 // set parameter 19 to 01 (metro track with catenary replaces monorail)
72 * 9	 0D 14 \D= FF FF 04 00 00 00 // set parameter 14 to 04
73 * 9	 09 18 04 \7! 03 00 00 00 02 // if p18 != 3 skip 2
74 * 9	 0D 1A \D= FF FF 01 00 00 00 // set parameter 1A to 01 (metro track with catenary replaces maglev)
75 * 9	 0D 15 \D= FF FF 05 00 00 00 // set parameter 15 to 05

// Look for NG rails parameter
76 * 9	 09 88 04 \7gg 73 66 02 01 05 // if not ngrails skip 5
77 * 9	 0D 13 \D= 02 FE 73 66 02 01 // set parameter 13 to ngrails parameter 2
78 * 9	 09 13 04 \7! 02 00 00 00 01 // if p13 != 2 skip 1
79 * 9	 0D 14 \D= FF FF 04 00 00 00 // set parameter 14 to 04
80 * 9	 09 13 04 \7! 04 00 00 00 01 // if p13 != 4 skip 1
81 * 9	 0D 15 \D= FF FF 05 00 00 00 // set parameter 15 to 05

// Look for Canadian Trains and Railways (uses maglev slot for narrow gauge rails)
82 * 13	 09 88 08 \7GG 97 85 82 90 FF FF FF F0 04 // if canrail v2.0 skip 4
83 * 13	 09 88 08 \7GG 97 87 E2 80 FF FF FF F0 03 // if canrail v1.6 skip 3
84 * 9	 09 88 04 \7GG 97 83 E2 81 02 // if canrail v1.2 skip 2
85 * 9	 09 88 04 \7GG 43 41 53 62 01 // if cansetw 0.3 to 1.1 skip 1
86 * 9	 09 88 04 \7gg 43 41 53 61 01 // if not cansetw 0.2 skip 1
87 * 9	 0D 15 \D= FF FF 05 00 00 00 // set parameter 15 to 05
// Sprites loaded by action A

// 0 - Recolour sprite - modern gantry crane, red/white(grey) to blue(grey)
// 1 - Recolour sprite - modern gantry crane, red/white(grey) to yellow(grey)
// 2 - Recolour sprite - modern gantry crane, red/white(grey) to grey(yellow)
// 3 - Recolour sprite - classic gantry crane, green to black
// 4 - Recolour sprite - classic gantry crane, green to yellow
// 5 - Recolour sprite - classic gantry crane, green to red
// 6 - Recolour sprite - minerals, iron ore to coal
// 7 - Recolour sprite - minerals, iron ore to copper ore
// 8 - Recolour sprite - minerals, iron ore to clay
// 9 - Recolour sprite - minerals, iron ore to gravel
// A - Recolour sprite - minerals, iron ore to limestone
// B - Recolour sprite - minerals, iron ore to sand
// C - Recolour sprite - minerals, iron ore to bauxite
// D - Recolour sprite - minerals, iron ore to nitrates
// E - Recolour sprite - copper to steel
// F - Recolour sprite - fruit to beans

// Parameter 10 - recolour sprite ID base

// Use GRF Resource Management to reserve 16 sprites
88 * 9	 0D 10 \D= \DR FE FF 08 10 00 // (*change when adding new sprites*)

89 * 6	 09 8D 01 \7= 00 \b19 // if DOS skip 19 (*change when adding new sprites*)

90 * 5	 06 10 02 03 FF // use parameter 10 to modify 2 bytes from byte 3
91 * 5	 0A 01 \b16 00 00 // load sprites (*change when adding new sprites*)

// Modern gantry cranes
// Red/white(grey) to blue(grey) - Windows palette
92 * 257	 00
00 01 02 03 04 05 06 07 08 09 9B 9C 9D 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 10 23 24 25 26 27 9B 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 12 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 13 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 11 6E 6F // 96 to 111
70 71 10 11 74 12 13 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 9E 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 9A 9B 9C 9D 9E B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 14 C4 C5 73 C7 BA C9 BC CB BB CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 9A F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Red/white(grey) to yellow(grey) - Windows palette
93 * 257	 00
00 01 02 03 04 05 06 07 08 09 6D 38 41 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 9A 23 24 25 26 27 6D 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 9C 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 9D 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 9B 6E 6F // 96 to 111
70 71 10 11 74 12 13 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 C3 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 22 6D 38 41 C3 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 9E C4 C5 21 C7 F5 C9 87 CB 0B CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 22 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Red/white(grey) to grey(yellow) - Windows palette
94 * 257	 00
00 01 02 03 04 05 06 07 08 09 11 12 13 0D 0E 0F // 0 to 15
22 6D 38 41 C3 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 9A 23 24 25 26 27 12 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 9C 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 9D 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 9B 6E 6F // 96 to 111
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 14 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 10 11 12 13 14 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 9E C4 C5 73 C7 BA C9 BC CB BB CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 10 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Classic gantry cranes
// Green to black - Windows palette
95 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 24 40 41 42 33 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 60 // 48 to 63
59 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 D8 88 58 6A 20 21 5F // 80 to 95
D7 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F // 96 to 111
70 71 72 73 74 75 76 77 78 79 18 19 1A 1B 1C 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 22 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Green to yellow - Windows palette
96 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
D7 D8 88 58 6A 20 21 28 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 13 14 15 16 17 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 60 // 48 to 63
59 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 22 24 40 41 42 33 5F // 80 to 95
35 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F // 96 to 111
70 71 72 73 74 75 76 77 B2 B3 35 6B 22 23 24 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 12 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Green to red - Windows palette
97 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 24 40 41 42 33 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3C // 48 to 63
3D 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 29 2A 2B 2C 2D 2E 5F // 80 to 95
B2 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F // 96 to 111
70 71 72 73 74 75 76 77 78 79 10 11 12 13 14 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 22 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to coal - Windows palette
98 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 D7 69 6A 6B D8 6D 6E 6F // 96 to 111
D7 71 72 88 88 20 58 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to copper ore - Windows palette
99 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 69 6A 6B 1A 6D 6E 6F // 96 to 111
1B 71 72 22 38 39 3B 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to clay - Windows palette
100 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 69 69 6A 6B 6B 6D 6E 6F // 96 to 111
35 71 72 6C 6D 6E 6F 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 68 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to gravel - Windows palette
101 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 58 69 6A 6B 20 6D 6E 6F // 96 to 111
6A 71 72 15 28 0A 0B 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D8 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to limestone - Windows palette
102 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 6A 69 6A 6B 0B 6D 6E 6F // 96 to 111
21 71 72 F5 87 0E A1 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to sand - Windows palette
103 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 6B 69 6A 6B 74 6D 6E 6F // 96 to 111
40 71 72 C3 7F 78 C5 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to bauxite - Windows palette
104 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 6C 69 6A 6B 74 6D 6E 6F // 96 to 111
73 71 72 75 2E 2F 30 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 68 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to nitrates - Windows palette
105 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 23 69 6A 6B 25 6D 6E 6F // 96 to 111
24 71 72 26 27 45 0E 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 22 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Copper to steel - Windows palette
106 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 D7 6A 6B 6C 6D 6E 6F // 96 to 111
88 58 6A 20 21 28 F5 0A 0B 17 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Fruit to beans - Windows palette
107 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 CE 57 D0 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F // 96 to 111
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA 5C 5E BD D1 BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

108 * 6	 09 9A 01 \71 00 \b18 // skip 18 (*change when adding new sprites*)

109 * 5	 06 10 02 03 FF // use parameter 10 to modify 2 bytes from byte 3
110 * 5	 0A 01 \b16 00 00 // load sprites (*change when adding new sprites*)

// Modern gantry cranes
// Red/white(grey) to blue(grey) - DOS palette
111 * 257	 00
00 01 02 03 04 05 06 07 9B 9A 9B 9C 9D 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 10 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 12 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 13 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 11 6E 6F // 96 to 111
70 71 10 11 74 12 13 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 9E 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 9A 9B 9C 9D 9E B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 14 C4 C5 73 C7 BA C9 BC CB BB CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Red/white(grey) to yellow(grey) - DOS palette
112 * 257	 00
00 01 02 03 04 05 06 07 6D 22 6D 38 41 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 9A 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 9C 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 9D 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 9B 6E 6F // 96 to 111
70 71 10 11 74 12 13 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 C3 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 22 6D 38 41 C3 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 9E C4 C5 07 C7 09 C9 87 CB 0B CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Red/white(grey) to grey(yellow) - DOS palette
113 * 257	 00
00 01 02 03 04 05 06 07 12 10 11 12 13 0D 0E 0F // 0 to 15
22 6D 38 41 C3 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 9A 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 9C 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 9D 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 9B 6E 6F // 96 to 111
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 14 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 10 11 12 13 14 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 9E C4 C5 73 C7 BA C9 BC CB BB CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Classic gantry cranes
// Green to black - DOS palette
114 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 24 40 41 42 33 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 60 // 48 to 63
59 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 02 03 04 05 06 07 5F // 80 to 95
01 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F // 96 to 111
70 71 72 73 74 75 76 77 78 79 18 19 1A 1B 1C 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 22 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Green to yellow - DOS palette
115 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
01 02 03 04 05 06 07 08 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 13 14 15 16 17 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 60 // 48 to 63
59 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 22 24 40 41 42 33 5F // 80 to 95
35 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F // 96 to 111
70 71 72 73 74 75 76 77 B2 B3 35 6B 22 23 24 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 12 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Green to red - DOS palette
116 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 24 40 41 42 33 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3C // 48 to 63
3D 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 29 2A 2B 2C 2D 2E 5F // 80 to 95
B2 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F // 96 to 111
70 71 72 73 74 75 76 77 78 79 10 11 12 13 14 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 22 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to coal - DOS palette
117 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 01 69 6A 6B 02 6D 6E 6F // 96 to 111
01 71 72 03 03 06 04 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to copper ore - DOS palette
118 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 69 6A 6B 1A 6D 6E 6F // 96 to 111
1B 71 72 22 38 39 3B 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to clay - DOS palette
119 * 257	 00
00 68 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 69 69 6A 6B 6B 6D 6E 6F // 96 to 111
35 71 72 6C 6D 6E 6F 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to gravel - DOS palette
120 * 257	 00
00 02 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 04 69 6A 6B 06 6D 6E 6F // 96 to 111
05 71 72 15 08 0A 0B 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to limestone - DOS palette
121 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 05 69 6A 6B 0B 6D 6E 6F // 96 to 111
07 71 72 09 87 0E A1 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to sand - DOS palette
122 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 6B 69 6A 6B 74 6D 6E 6F // 96 to 111
40 71 72 C3 7F 78 C5 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to bauxite - DOS palette
123 * 257	 00
00 68 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 6C 69 6A 6B 74 6D 6E 6F // 96 to 111
73 71 72 75 2E 2F 30 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Iron ore to nitrates - DOS palette
124 * 257	 00
00 22 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 23 69 6A 6B 25 6D 6E 6F // 96 to 111
24 71 72 26 27 45 0E 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Copper to steel - DOS palette
125 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 01 6A 6B 6C 6D 6E 6F // 96 to 111
03 04 05 06 07 08 09 0A 0B 17 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255

// Fruit to beans - DOS palette
126 * 257	 00
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F // 0 to 15
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F // 16 to 31
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F // 32 to 47
30 31 CE 57 D0 35 36 37 38 39 3A 3B 3C 3D 3E 3F // 48 to 63
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F // 64 to 79
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F // 80 to 95
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F // 96 to 111
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F // 112 to 127
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F // 128 to 143
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F // 144 to 159
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF // 160 to 175
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA 5C 5E BD D1 BF // 176 to 191
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF // 192 to 207
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF // 208 to 223
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF // 224 to 239
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF // 240 to 255
// Empty platforms
// Sprites used for many different stations.

// - FF: Non-track ground level tile
// - FE: Non-track raised tile
// - FD: Ground level platforms
// - FC: Raised platforms
// - F7: Platform ramps
// - F6: Road crossing
// - F4: Buffers ground level

127 * 4	 01 04 01 01
128 images/newfixtures2.pcx 18 210 01 31 64 -31 0 // non-track ground level tile

129 * 7	 02 04 FF // ID
00 01
\w0

130 * 4	 01 04 01 01
131 images/newfixtures2.pcx 87 210 09 34 64 -31 -3 // non-track raised tile

132 * 7	 02 04 FE // ID
00 01
\w0

133 * 4	 01 04 01 02
134 images/newfixtures2.pcx 18 249 01 31 64 -31 0 // 042D x, platform ground level
135 images/newfixtures2.pcx 87 249 01 31 64 -31 0 // 042E y, platform ground level

136 * 7	 02 04 FD // ID
00 01
\w0

137 * 4	 01 04 01 04
138 images/newfixtures2.pcx 18 43 09 23 42 -31 -3 // 042D x, platform raised back
139 images/newfixtures2.pcx 63 43 09 23 42 -31 -3 // 042E x, platform raised front
140 images/newfixtures2.pcx 108 43 09 23 42 -9 -3 // 042F y, platform raised back
141 images/newfixtures2.pcx 153 43 09 23 42 -9 -3 // 0430 y, platform raised front

142 * 7	 02 04 FC // ID
00 01
\w0

143 * 4	 01 04 01 04
144 images/newfixtures2.pcx 18 286 01 21 35 -24 -3 // 042D x, ramp S
145 images/newfixtures2.pcx 57 286 01 17 34 -31 3 // 042E x, ramp N
146 images/newfixtures2.pcx 95 286 01 21 36 -9 -3 // 042F y, ramp S
147 images/newfixtures2.pcx 135 286 01 17 34 -1 3 // 0430 y, ramp N

148 * 7	 02 04 F7 // ID
00 01
\w0

149 * 4	 01 04 01 06
150 images/newroads4.pcx 4 480 01 31 64 -31 0 // 042D x, crossing normal rail
151 images/newroads4.pcx 73 480 01 31 64 -31 0 // 042E y, crossing normal rail
152 images/newroads4.pcx 4 552 01 31 64 -31 0 // 042F x, crossing monorail/fine scale
153 images/newroads4.pcx 73 552 01 31 64 -31 0 // 0430 y, crossing monorail/fine scale
154 images/newroads4.pcx 4 516 01 31 64 -31 0 // 0431 x, crossing maglev
155 images/newroads4.pcx 73 516 01 31 64 -31 0 // 0432 y, crossing maglev

156 * 7	 02 04 F6 // ID
00 01
\w0

157 * 4	 01 04 01 06
158 images/newfixtures2.pcx 18 313 01 10 23 -10 0 // 042D x, N buffers
159 images/newfixtures2.pcx 45 313 01 10 23 -11 0 // 042E y, N buffers
160 images/newfixtures2.pcx 72 313 01 15 23 -15 -2 // 042F x, S buffers
161 images/newfixtures2.pcx 99 313 01 15 23 -6 -2 // 0430 y, S buffers
162 images/newfixtures2.pcx 126 313 01 21 35 -27 -2 // 0431 x, double buffers
163 images/newfixtures2.pcx 165 313 01 21 35 -6 -2 // 0432 y, double buffers

164 * 7	 02 04 F4 // ID
00 01
\w0
// 'Global' sprites
// - EF: Tower crane
// - EE: Offices and shed
// - ED: Shelter
// - EC: Train sheds
// - EB: Valuables shed A
// - EA: Valuables shed B
// - E9: Valuables shed C
// - E8: Valuables unloader
// - E7: Farm
// - E6: Mineral platforms
// - E5: Mineral platforms - empty
// - E4: Paper platforms
// - E3: Paper platforms - empty
// - E2: Fruit platforms
// - E1: Fruit platforms - empty
// - E0: Barrel platforms
// - DF: Barrel platforms - empty
// - DE: Wood platforms
// - DD: Wood platforms - empty
// - DC: Container platforms
// - DB: Container platforms - empty
// - DA: General cargo platforms
// - D9: General cargo platforms - empty
// - D8: Pig yard
// - D7: Pig yard - empty
// - D6: Cattle docks
// - D5: Cattle docks - empty
// - D4: Milk tanks
// - D3: Animated flag
// - D2: Fences
// - D1: Forklifts with cargo
// - D0: Freight station buildings
// - CF: Crawler crane
// - CE: Bulldozer
// - CD: Roads
// - CC: Crane on rails

// Tower crane

165 * 4	 01 04 01 12
166 images/newfixtures2.pcx 112 572 01 29 42 -31 -9 // 042D x, back
167 images/newfixtures2.pcx 63 43 01 23 42 -31 -3 // 042E x, front
168 images/newfixtures2.pcx 18 572 01 29 42 -9 -9 // 042F y, back
169 images/newfixtures2.pcx 153 43 01 23 42 -9 -3 // 0430 y, front

170 images/newfixtures2.pcx 300 572 01 15 21 -7 -4 // 0431 x, head frame 0
171 images/newfixtures2.pcx 283 572 01 16 15 -6 -4 // 0432 x, head frame 1
172 images/newfixtures2.pcx 270 572 01 18 11 -6 -4 // 0433 x, head frame 2
173 images/newfixtures2.pcx 259 572 01 17 8 -6 -4 // 0434 x, head frame 3
174 images/newfixtures2.pcx 245 572 01 18 11 -9 -4 // 0435 x, head frame 4
175 images/newfixtures2.pcx 228 572 01 16 15 -13 -4 // 0436 x, head frame 5
176 images/newfixtures2.pcx 205 572 01 15 21 -18 -4 // 0437 x, head frame 6

177 images/newfixtures2.pcx 205 572 01 15 21 -12 -4 // 0438 y, head frame 0
178 images/newfixtures2.pcx 228 572 01 16 15 -7 -4 // 0439 y, head frame 1
179 images/newfixtures2.pcx 245 572 01 18 11 -3 -4 // 043A y, head frame 2
180 images/newfixtures2.pcx 259 572 01 17 8 0 -4 // 043B y, head frame 3
181 images/newfixtures2.pcx 270 572 01 18 11 0 -4 // 043C y, head frame 4
182 images/newfixtures2.pcx 283 572 01 16 15 0 -4 // 043D y, head frame 5
183 images/newfixtures2.pcx 300 572 01 15 21 -1 -4 // 043E y, head frame 6

184 * 7	 02 04 EF // ID
00 01
\w0

// Offices and shed

185 * 4	 01 04 01 2C
186 images/newfacilities5.pcx 122 7 01 27 30 -29 -11 // 042D x, front platform lamp posts and sign
187 images/newfacilities5.pcx 273 7 01 27 30 1 -11 // 042E y, front platform lamp posts and sign
188 images/newfacilities5.pcx 146 55 01 12 17 -17 -3 // 042F x, front platform fence
189 images/newfacilities5.pcx 331 55 01 12 17 0 -3 // 0430 y, front platform fence
190 images/newfacilities5.pcx 53 164 01 18 17 -18 -4 // 0431 x, shed front platform lamp posts
191 images/newfacilities5.pcx 124 164 01 18 17 3 -4 // 0432 y, shed front platform lamp posts
192 images/newfacilities5.pcx 307 7 01 13 25 0 0 // 0433 x, steps
193 images/newfacilities5.pcx 336 7 01 13 25 0 0 // 0434 y, steps
194 images/newfacilities5.pcx 6 7 01 23 38 -30 -4 // 0435 x, classic high
195 images/newfacilities5.pcx 157 7 01 23 38 -6 -4 // 0436 y, classic high
196 images/newfacilities5.pcx 92 7 01 24 26 -24 -9 // 0437 x, middle high
197 images/newfacilities5.pcx 243 7 01 24 26 0 -9 // 0438 y, middle high
198 images/newfacilities5.pcx 48 7 01 37 40 -30 -18 // 0439 x, modern high
199 images/newfacilities5.pcx 199 7 01 37 40 -8 -18 // 043A y, modern high
200 images/newfacilities5.pcx 6 55 01 24 37 -29 -6 // 043B x, classic low
201 images/newfacilities5.pcx 190 55 01 24 37 -6 -6 // 043C y, classic low
202 images/newfacilities5.pcx 99 55 01 32 42 -31 -12 // 043D x, middle low
203 images/newfacilities5.pcx 283 55 01 32 42 -9 -12 // 043E y, middle low
204 images/newfacilities5.pcx 48 55 01 37 47 -31 -17 // 043F x, modern low
205 images/newfacilities5.pcx 232 55 01 35 47 -14 -15 // 0440 y, modern low
206 images/newfacilities5.pcx 5 164 01 29 42 -31 -10 // 0441 x, shed
207 images/newfacilities5.pcx 76 164 01 29 42 -10 -10 // 0442 y, shed
208 images/newfacilities5.pcx 149 164 01 25 29 -25 -9 // 0443 x, brick office
209 images/newfacilities5.pcx 185 164 01 25 29 -2 -9 // 0444 y, brick office
210 images/newfacilities5.pcx 221 164 01 23 22 -23 -9 // 0445 x, small brick office
211 images/newfacilities5.pcx 249 164 01 23 22 3 -9 // 0446 y, small brick office

212 images/newfacilities5.pcx 5 761 01 18 38 0 0 // 0447 x, classic high snow
213 images/newfacilities5.pcx 121 761 01 18 38 0 0 // 0448 y, classic high snow
214 images/newfacilities5.pcx 91 761 01 13 26 0 0 // 0449 x, middle high snow
215 images/newfacilities5.pcx 207 761 01 13 26 0 0 // 044A y, middle high snow
216 images/newfacilities5.pcx 47 761 01 19 40 0 0 // 044B x, modern high snow
217 images/newfacilities5.pcx 163 761 01 19 40 0 0 // 044C y, modern high snow
218 images/newfacilities5.pcx 5 784 01 18 37 0 0 // 044D x, classic low snow
219 images/newfacilities5.pcx 144 784 01 18 37 0 0 // 044E y, classic low snow
220 images/newfacilities5.pcx 98 784 01 20 42 0 0 // 044F x, middle low snow
221 images/newfacilities5.pcx 237 784 01 20 42 0 0 // 0450 y, middle low snow
222 images/newfacilities5.pcx 47 784 01 30 47 0 2 // 0451 x, modern low snow
223 images/newfacilities5.pcx 186 784 01 30 47 0 0 // 0452 y, modern low snow
224 images/newfacilities5.pcx 5 850 01 22 42 0 0 // 0453 x, shed snow
225 images/newfacilities5.pcx 52 850 01 22 42 0 0 // 0454 y, shed snow
226 images/newfacilities5.pcx 99 850 01 19 29 0 0 // 0455 x, brick office snow
227 images/newfacilities5.pcx 133 850 01 19 29 0 0 // 0456 y, brick office snow
228 images/newfacilities5.pcx 167 850 01 14 22 0 2 // 0457 x, small brick office snow
229 images/newfacilities5.pcx 194 850 01 14 22 0 2 // 0458 y, small brick office snow

230 * 7	 02 04 EE // ID
00 01
\w0

// Shelter

231 * 4	 01 04 01 06
232 images/newfacilities5.pcx 277 164 01 31 39 -39 -17 // 042D x, shelter
233 images/newfacilities5.pcx 322 164 01 10 2 -31 3 // 042E x, shelter back leg
234 images/newfacilities5.pcx 330 164 01 31 39 2 -17 // 042F y, shelter
235 images/newfacilities5.pcx 375 164 01 10 2 31 3 // 0430 y, shelter back leg
236 images/newfacilities5.pcx 221 850 01 20 39 0 0 // 0431 x, shelter snow
237 images/newfacilities5.pcx 265 850 01 20 39 0 0 // 0432 y, shelter snow

238 * 7	 02 04 ED // ID
00 01
\w0

// Train shed

239 * 4	 01 04 01 0A
240 images/newfacilities5.pcx 5 677 09 51 67 -33 -20 // 042D x, front A
241 images/newfacilities5.pcx 80 677 09 51 67 -32 -20 // 042E y, front A
242 images/newfacilities5.pcx 155 677 09 51 67 -33 -20 // 042F x, front B
243 images/newfacilities5.pcx 230 677 09 51 67 -32 -20 // 0430 y, front B
244 images/newfacilities5.pcx 5 737 09 17 23 -31 3 // 0431 x, back part
245 images/newfacilities5.pcx 80 737 09 17 23 10 3 // 0432 y, back part
246 images/newfacilities5.pcx 35 737 09 20 14 0 0 // 0433 x, door
247 images/newfacilities5.pcx 110 737 09 20 14 0 0 // 0434 y, door
248 images/newfacilities5.pcx 5 876 09 32 66 0 0 // 0435 x, snow
249 images/newfacilities5.pcx 81 876 09 32 66 0 0 // 0435 y, snow

250 * 7	 02 04 EC // ID
00 01
\w0

// Valuables shed A

251 * 4	 01 04 01 0E
252 images/valuablesx4.pcx 70 11 09 53 56 -23 -22 // 042D x, front 1
253 images/valuablesx4.pcx 12 11 09 53 56 -31 -22 // 042E y, front 1
254 images/valuablesx4.pcx 186 11 09 53 56 -23 -22 // 042F x, front 2
255 images/valuablesx4.pcx 128 11 09 53 56 -31 -22 // 0430 y, front 2
256 images/valuablesx4.pcx 302 11 09 53 56 -23 -22 // 0431 x, front 3
257 images/valuablesx4.pcx 244 11 09 53 56 -31 -22 // 0432 y, front 3
258 images/valuablesx4.pcx 38 66 09 29 24 -31 -2 // 0433 x, back part
259 images/valuablesx4.pcx 12 66 09 29 24 9 -2 // 0434 y, back part
260 images/valuablesx4.pcx 86 66 09 19 14 0 0 // 0435 x, door
261 images/valuablesx4.pcx 70 66 09 19 14 0 0 // 0436 y, door
262 images/valuablesx4.pcx 166 66 09 40 56 0 0 // 0437 x, front snow
263 images/valuablesx4.pcx 108 66 09 40 56 0 0 // 0438 y, front snow
264 images/valuablesx4.pcx 234 66 01 4 8 0 0 // 0439 x, back part snow
265 images/valuablesx4.pcx 224 66 01 4 8 0 0 // 043A y, back part snow

266 * 7	 02 04 EB // ID
00 01
\w0

// Valuables shed B

267 * 4	 01 04 01 0E
268 images/valuablesx4.pcx 70 121 09 53 56 -23 -22 // 042D x, front 1
269 images/valuablesx4.pcx 12 121 09 53 56 -31 -22 // 042E y, front 1
270 images/valuablesx4.pcx 186 121 09 53 56 -23 -22 // 042F x, front 2
271 images/valuablesx4.pcx 128 121 09 53 56 -31 -22 // 0430 y, front 2
272 images/valuablesx4.pcx 302 121 09 53 56 -23 -22 // 0431 x, front 3
273 images/valuablesx4.pcx 244 121 09 53 56 -31 -22 // 0432 y, front 3
274 images/valuablesx4.pcx 38 176 09 37 24 -31 -10 // 0433 x, back part
275 images/valuablesx4.pcx 12 176 09 37 24 9 -10 // 0434 y, back part
276 images/valuablesx4.pcx 86 66 09 19 14 0 0 // 0435 x, door
277 images/valuablesx4.pcx 70 66 09 19 14 0 0 // 0436 y, door
278 images/valuablesx4.pcx 128 176 09 32 56 0 0 // 0437 x, front snow
279 images/valuablesx4.pcx 70 176 09 32 56 0 0 // 0438 y, front snow
280 images/valuablesx4.pcx 234 66 01 4 8 0 0 // 0439 x, back part snow
281 images/valuablesx4.pcx 224 66 01 4 8 0 0 // 043A y, back part snow

282 * 7	 02 04 EA // ID
00 01
\w0

// Valuables shed C

283 * 4	 01 04 01 0E
284 images/valuablesx4.pcx 70 231 09 53 56 -23 -22 // 042D x, front 1
285 images/valuablesx4.pcx 12 231 09 53 56 -31 -22 // 042E y, front 1
286 images/valuablesx4.pcx 186 231 09 53 56 -23 -22 // 042F x, front 2
287 images/valuablesx4.pcx 128 231 09 53 56 -31 -22 // 0430 y, front 2
288 images/valuablesx4.pcx 302 231 09 53 56 -23 -22 // 0431 x, front 3
289 images/valuablesx4.pcx 244 231 09 53 56 -31 -22 // 0432 y, front 3
290 images/valuablesx4.pcx 38 66 09 29 24 -31 -2 // 0433 x, back part
291 images/valuablesx4.pcx 12 66 09 29 24 9 -2 // 0434 y, back part
292 images/valuablesx4.pcx 86 66 09 19 14 0 0 // 0435 x, door
293 images/valuablesx4.pcx 70 66 09 19 14 0 0 // 0436 y, door
294 images/valuablesx4.pcx 244 176 09 40 56 0 0 // 0437 x, front snow
295 images/valuablesx4.pcx 186 176 09 40 56 0 0 // 0438 y, front snow
296 images/valuablesx4.pcx 234 66 01 4 8 0 0 // 0439 x, back part snow
297 images/valuablesx4.pcx 224 66 01 4 8 0 0 // 043A y, back part snow

298 * 7	 02 04 E9 // ID
00 01
\w0

// Valuables unloader

299 * 4	 01 04 01 0A
300 images/valuablesx4.pcx 12 324 01 24 19 -10 -18 // 042D x, back part
301 images/valuablesx4.pcx 98 324 01 24 19 -7 -18 // 042E y, back part
302 images/valuablesx4.pcx 37 324 01 36 35 -34 -21 // 042F x, unloader
303 images/valuablesx4.pcx 123 324 01 36 35 1 -21 // 0430 y, unloader
304 images/valuablesx4.pcx 78 324 01 10 14 0 0 // 0431 x, unloader sign
305 images/valuablesx4.pcx 164 324 01 10 14 0 0 // 0432 y, unloader sign
306 images/valuablesx4.pcx 184 324 01 9 19 0 0 // 0433 x, back part snow
307 images/valuablesx4.pcx 248 324 01 9 19 0 0 // 0434 y, back part snow
308 images/valuablesx4.pcx 208 324 01 18 35 0 0 // 0435 x, unloader snow
309 images/valuablesx4.pcx 272 324 01 18 35 0 0 // 0436 y, unloader snow

310 * 7	 02 04 E8 // ID
00 01
\w0

// Farm

311 * 4	 01 04 01 32
312 images/newfarm2.pcx 335 30 01 27 30 -28 -13 // 042D x, old barn
313 images/newfarm2.pcx 335 90 01 27 30 0 -13 // 042E y, old barn
314 images/newfarm2.pcx 5 30 01 47 30 -27 -32 // 042F x, silos
315 images/newfarm2.pcx 5 90 01 47 30 -1 -32 // 0430 y, silos
316 images/newfarm2.pcx 41 30 01 22 25 -25 -7 // 0431 x, hay
317 images/newfarm2.pcx 41 90 01 22 25 3 -7 // 0432 y, hay
318 images/newfarm2.pcx 96 30 01 12 16 -8 -3 // 0433 x, tractor 1
319 images/newfarm2.pcx 96 90 01 12 16 -6 -3 // 0434 y, tractor 1
320 images/newfarm2.pcx 117 30 01 12 16 -8 -3 // 0435 x, tractor 2
321 images/newfarm2.pcx 117 90 01 12 16 -6 -3 // 0436 y, tractor 2
322 images/newfarm2.pcx 138 30 01 12 16 -8 -3 // 0437 x, tractor 3
323 images/newfarm2.pcx 138 90 01 12 16 -6 -3 // 0438 y, tractor 3
324 images/newfarm2.pcx 158 30 01 31 39 -29 -12 // 0439 x, tractor shed 1
325 images/newfarm2.pcx 158 90 01 31 39 -8 -12 // 043A y, tractor shed 1
326 images/newfarm2.pcx 202 30 01 31 39 -29 -12 // 043B x, tractor shed 2
327 images/newfarm2.pcx 202 90 01 31 39 -8 -12 // 043C y, tractor shed 2

// Farm building 1 (grey)
328 images/newfarm2.pcx 156 160 01 38 36 -25 -18 // 043D x, northern tile
329 images/newfarm2.pcx 5 160 01 38 36 -9 -18 // 043E y, northern tile
330 images/newfarm2.pcx 100 160 01 60 47 -36 -40 // 043F x, southern tile
331 images/newfarm2.pcx 50 160 01 60 47 -9 -40 // 0440 y, southern tile
// Farm building 2 (red)
332 images/newfarm2.pcx 156 225 01 38 36 -25 -18 // 0441 x, northern tile
333 images/newfarm2.pcx 5 225 01 38 36 -9 -18 // 0442 y, northern tile
334 images/newfarm2.pcx 100 225 01 60 47 -36 -40 // 0443 x, southern tile
335 images/newfarm2.pcx 50 225 01 60 47 -9 -40 // 0444 y, southern tile
// Overarch
336 images/newfarm2.pcx 200 160 01 34 29 -10 -18 // 0445 x
337 images/newfarm2.pcx 235 160 01 33 30 -18 -18 // 0446 y

// New barn
338 images/newfarm2.pcx 247 30 01 27 38 -29 -8 // 0447 x, back
339 images/newfarm2.pcx 290 30 01 28 40 -29 -10 // 0448 x, front
340 images/newfarm2.pcx 247 90 01 27 38 -7 -8 // 0449 y, back
341 images/newfarm2.pcx 290 90 01 28 40 -9 -10 // 044A y, front

// Grain tanks
342 images/newfarm2.pcx 5 300 01 47 39 -29 -30 // 044B x, N tile
343 images/newfarm2.pcx 5 380 01 47 39 -8 -30 // 044C y, N tile
344 images/newfarm2.pcx 50 300 01 70 37 -29 -53 // 044D x, 2nd tile
345 images/newfarm2.pcx 50 380 01 70 37 -6 -53 // 044E y, 2nd tile
346 images/newfarm2.pcx 93 300 01 52 44 -29 -35 // 044F x, S tiles
347 images/newfarm2.pcx 93 380 01 52 44 -13 -35 // 0450 y, S tiles

// Snow
348 images/newfarm2.pcx 5 5 01 14 27 0 0 // 0451 x, silos snow
349 images/newfarm2.pcx 199 5 01 14 27 0 0 // 0452 y, silos snow
350 images/newfarm2.pcx 36 5 01 20 39 0 0 // 0453 x, tractor shed snow
351 images/newfarm2.pcx 230 5 01 20 39 0 0 // 0454 y, tractor shed snow
352 images/newfarm2.pcx 80 5 01 16 37 0 0 // 0455 x, new barn back snow
353 images/newfarm2.pcx 121 5 01 22 40 0 0 // 0456 x, new barn front snow
354 images/newfarm2.pcx 274 5 01 17 37 0 0 // 0457 y, new barn back snow
355 images/newfarm2.pcx 315 5 01 22 40 0 0 // 0458 y, new barn front snow
356 images/newfarm2.pcx 165 5 01 18 30 0 0 // 0459 x, old barn snow
357 images/newfarm2.pcx 359 5 01 18 30 0 0 // 045A y, old barn snow
358 images/newfarm2.pcx 333 225 01 19 33 0 0 // 045B x, farm building N tile snow
359 images/newfarm2.pcx 199 225 01 19 33 3 0 // 045C y, farm building N tile snow
360 images/newfarm2.pcx 285 225 01 49 43 0 0 // 045D x, farm building S tile snow
361 images/newfarm2.pcx 237 225 01 49 43 4 0 // 045E y, farm building S tile snow

362 * 7	 02 04 E7 // ID
00 01
\w0

// Mineral platforms

363 * 4	 01 04 04 04
// Empty
364 images/newmines7.pcx 7 281 09 1 1 0 0 // 042D x, back
365 images/newmines7.pcx 7 281 09 1 1 0 0 // 042E x, front
366 images/newmines7.pcx 7 281 09 1 1 0 0 // 042F y, back
367 images/newmines7.pcx 7 281 09 1 1 0 0 // 0430 y, front
// Level 1
368 images/newmines7.pcx 7 281 01 8 14 -25 9 // 042D x, back
369 images/newmines7.pcx 24 281 01 9 16 -11 1 // 042E x, front
370 images/newmines7.pcx 43 281 01 9 11 2 1 // 042F y, back
371 images/newmines7.pcx 57 281 01 12 18 10 5 // 0430 y, front
// Level 2
372 images/newmines7.pcx 78 281 01 17 30 -29 2 // 042D x, back
373 images/newmines7.pcx 111 281 01 23 33 -25 -6 // 042E x, front
374 images/newmines7.pcx 147 281 01 26 35 -7 -8 // 042F y, back
375 images/newmines7.pcx 185 281 01 18 34 -4 0 // 0430 y, front
// Level 3
376 images/newmines7.pcx 222 281 01 24 34 -29 -5 // 042D x, back
377 images/newmines7.pcx 259 281 01 24 36 -28 -6 // 042E x, front
378 images/newmines7.pcx 298 281 01 26 37 -7 -8 // 042F y, back
379 images/newmines7.pcx 338 281 01 26 36 -6 -8 // 0430 y, front

380 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

381 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

382 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

383 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

384 * 15	 02 04 E6 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

// Empty
385 * 7	 02 04 E5 // ID
00 01
\w0

// Paper platforms

386 * 4	 01 04 04 08
// Empty
387 images/processedp1.pcx 3 390 01 1 1 0 0 // 042D x, type 1
388 images/processedp1.pcx 3 390 01 1 1 0 0 // 042E x, type 2
389 images/processedp1.pcx 3 390 01 1 1 0 0 // 042F x, type 3
390 images/processedp1.pcx 3 390 01 1 1 0 0 // 0430 x, type 4
391 images/processedp1.pcx 3 390 01 1 1 0 0 // 0431 y, type 1
392 images/processedp1.pcx 3 390 01 1 1 0 0 // 0432 y, type 2
393 images/processedp1.pcx 3 390 01 1 1 0 0 // 0433 y, type 3
394 images/processedp1.pcx 3 390 01 1 1 0 0 // 0434 y, type 4
// Level 1
395 images/processedp1.pcx 3 390 01 21 32 -29 -5 // 042D x, type 1
396 images/processedp1.pcx 111 390 01 21 32 -29 -5 // 042E x, type 2
397 images/processedp1.pcx 219 390 01 21 32 -29 -5 // 042F x, type 3
398 images/processedp1.pcx 327 390 01 21 32 -29 -5 // 0430 x, type 4
399 images/processedp1.pcx 3 415 01 21 32 -1 -5 // 0431 y, type 1
400 images/processedp1.pcx 111 415 01 21 32 -1 -5 // 0432 y, type 2
401 images/processedp1.pcx 219 415 01 21 32 -1 -5 // 0433 y, type 3
402 images/processedp1.pcx 327 415 01 21 32 -1 -5 // 0434 y, type 4
// Level 2
403 images/processedp1.pcx 39 390 01 21 32 -29 -5 // 042D x, type 1
404 images/processedp1.pcx 147 390 01 21 32 -29 -5 // 042E x, type 2
405 images/processedp1.pcx 255 390 01 21 32 -29 -5 // 042F x, type 3
406 images/processedp1.pcx 363 390 01 21 32 -29 -5 // 0430 x, type 4
407 images/processedp1.pcx 39 415 01 21 32 -1 -5 // 0431 y, type 1
408 images/processedp1.pcx 147 415 01 21 32 -1 -5 // 0432 y, type 2
409 images/processedp1.pcx 255 415 01 21 32 -1 -5 // 0433 y, type 3
410 images/processedp1.pcx 363 415 01 21 32 -1 -5 // 0434 y, type 4
// Level 3
411 images/processedp1.pcx 75 390 01 21 32 -29 -5 // 042D x, type 1
412 images/processedp1.pcx 183 390 01 21 32 -29 -5 // 042E x, type 2
413 images/processedp1.pcx 291 390 01 21 32 -29 -5 // 042F x, type 3
414 images/processedp1.pcx 399 390 01 21 32 -29 -5 // 0430 x, type 4
415 images/processedp1.pcx 75 415 01 21 32 -1 -5 // 0431 y, type 1
416 images/processedp1.pcx 183 415 01 21 32 -1 -5 // 0432 y, type 2
417 images/processedp1.pcx 291 415 01 21 32 -1 -5 // 0433 y, type 3
418 images/processedp1.pcx 399 415 01 21 32 -1 -5 // 0434 y, type 4

419 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

420 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

421 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

422 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

423 * 15	 02 04 E4 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

// Empty
424 * 7	 02 04 E3 // ID
00 01
\w0

// Fruit platforms

425 * 4	 01 04 04 08
// Empty
426 images/newfarm2.pcx 5 682 01 1 1 0 0 // 042D x, type 1
427 images/newfarm2.pcx 5 682 01 1 1 0 0 // 042E x, type 2
428 images/newfarm2.pcx 5 682 01 1 1 0 0 // 042F x, type 3
429 images/newfarm2.pcx 5 682 01 1 1 0 0 // 0430 x, type 4
430 images/newfarm2.pcx 5 682 01 1 1 0 0 // 0431 y, type 1
431 images/newfarm2.pcx 5 682 01 1 1 0 0 // 0432 y, type 2
432 images/newfarm2.pcx 5 682 01 1 1 0 0 // 0433 y, type 3
433 images/newfarm2.pcx 5 682 01 1 1 0 0 // 0434 y, type 4
// Level 1
434 images/newfarm2.pcx 5 682 01 20 28 -26 -5 // 042D x, type 1
435 images/newfarm2.pcx 101 682 01 20 28 -26 -5 // 042E x, type 2
436 images/newfarm2.pcx 197 682 01 20 28 -26 -5 // 042F x, type 3
437 images/newfarm2.pcx 293 682 01 20 28 -26 -5 // 0430 x, type 4
438 images/newfarm2.pcx 5 707 01 21 29 1 -5 // 0431 y, type 1
439 images/newfarm2.pcx 101 707 01 21 29 1 -5 // 0432 y, type 2
440 images/newfarm2.pcx 197 707 01 21 29 1 -5 // 0433 y, type 3
441 images/newfarm2.pcx 293 707 01 21 29 1 -5 // 0434 y, type 4
// Level 2
442 images/newfarm2.pcx 37 682 01 20 28 -26 -5 // 042D x, type 1
443 images/newfarm2.pcx 133 682 01 20 28 -26 -5 // 042E x, type 2
444 images/newfarm2.pcx 229 682 01 20 28 -26 -5 // 042F x, type 3
445 images/newfarm2.pcx 325 682 01 20 28 -26 -5 // 0430 x, type 4
446 images/newfarm2.pcx 37 707 01 21 29 1 -5 // 0431 y, type 1
447 images/newfarm2.pcx 133 707 01 21 29 1 -5 // 0432 y, type 2
448 images/newfarm2.pcx 229 707 01 21 29 1 -5 // 0433 y, type 3
449 images/newfarm2.pcx 325 707 01 21 29 1 -5 // 0434 y, type 4
// Level 3
450 images/newfarm2.pcx 69 682 01 20 28 -26 -5 // 042D x, type 1
451 images/newfarm2.pcx 165 682 01 20 28 -26 -5 // 042E x, type 2
452 images/newfarm2.pcx 261 682 01 20 28 -26 -5 // 042F x, type 3
453 images/newfarm2.pcx 357 682 01 20 28 -26 -5 // 0430 x, type 4
454 images/newfarm2.pcx 69 707 01 21 29 1 -5 // 0431 y, type 1
455 images/newfarm2.pcx 165 707 01 21 29 1 -5 // 0432 y, type 2
456 images/newfarm2.pcx 261 707 01 21 29 1 -5 // 0433 y, type 3
457 images/newfarm2.pcx 357 707 01 21 29 1 -5 // 0434 y, type 4

458 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

459 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

460 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

461 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

462 * 15	 02 04 E2 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

// Empty
463 * 7	 02 04 E1 // ID
00 01
\w0

// Barrel platforms

464 * 4	 01 04 0D 04
// Empty
465 images/processedp1.pcx 3 132 01 01 01 0 0 // 042D x, back
466 images/processedp1.pcx 3 132 01 01 01 0 0 // 042E x, front
467 images/processedp1.pcx 3 132 01 01 01 0 0 // 042F y, back
468 images/processedp1.pcx 3 132 01 01 01 0 0 // 0430 y, front
// Type 1 - level 1
469 images/processedp1.pcx 3 132 01 27 36 -30 -9 // 042D x, back
470 images/processedp1.pcx 3 164 01 27 36 -30 -9 // 042E x, front
471 images/processedp1.pcx 3 196 01 27 36 -4 -9 // 042F y, back
472 images/processedp1.pcx 3 228 01 27 36 -4 -9 // 0430 y, front
// Type 1 - level 2
473 images/processedp1.pcx 43 132 01 27 36 -30 -9 // 042D x, back
474 images/processedp1.pcx 43 164 01 27 36 -30 -9 // 042E x, front
475 images/processedp1.pcx 43 196 01 27 36 -4 -9 // 042F y, back
476 images/processedp1.pcx 43 228 01 27 36 -4 -9 // 0430 y, front
// Type 1 - level 3
477 images/processedp1.pcx 83 132 01 27 36 -30 -9 // 042D x, back
478 images/processedp1.pcx 83 164 01 27 36 -30 -9 // 042E x, front
479 images/processedp1.pcx 83 196 01 27 36 -4 -9 // 042F y, back
480 images/processedp1.pcx 83 228 01 27 36 -4 -9 // 0430 y, front
// Type 2 - level 1
481 images/processedp1.pcx 123 132 01 27 36 -30 -9 // 042D x, back
482 images/processedp1.pcx 123 164 01 27 36 -30 -9 // 042E x, front
483 images/processedp1.pcx 123 196 01 27 36 -4 -9 // 042F y, back
484 images/processedp1.pcx 123 228 01 27 36 -4 -9 // 0430 y, front
// Type 2 - level 2
485 images/processedp1.pcx 163 132 01 27 36 -30 -9 // 042D x, back
486 images/processedp1.pcx 163 164 01 27 36 -30 -9 // 042E x, front
487 images/processedp1.pcx 163 196 01 27 36 -4 -9 // 042F y, back
488 images/processedp1.pcx 163 228 01 27 36 -4 -9 // 0430 y, front
// Type 2 - level 3
489 images/processedp1.pcx 203 132 01 27 36 -30 -9 // 042D x, back
490 images/processedp1.pcx 203 164 01 27 36 -30 -9 // 042E x, front
491 images/processedp1.pcx 203 196 01 27 36 -4 -9 // 042F y, back
492 images/processedp1.pcx 203 228 01 27 36 -4 -9 // 0430 y, front
// Type 3 - level 1
493 images/processedp1.pcx 243 132 01 27 36 -30 -9 // 042D x, back
494 images/processedp1.pcx 243 164 01 27 36 -30 -9 // 042E x, front
495 images/processedp1.pcx 243 196 01 27 36 -4 -9 // 042F y, back
496 images/processedp1.pcx 243 228 01 27 36 -4 -9 // 0430 y, front
// Type 3 - level 2
497 images/processedp1.pcx 283 132 01 27 36 -30 -9 // 042D x, back
498 images/processedp1.pcx 283 164 01 27 36 -30 -9 // 042E x, front
499 images/processedp1.pcx 283 196 01 27 36 -4 -9 // 042F y, back
500 images/processedp1.pcx 283 228 01 27 36 -4 -9 // 0430 y, front
// Type 3 - level 3
501 images/processedp1.pcx 323 132 01 27 36 -30 -9 // 042D x, back
502 images/processedp1.pcx 323 164 01 27 36 -30 -9 // 042E x, front
503 images/processedp1.pcx 323 196 01 27 36 -4 -9 // 042F y, back
504 images/processedp1.pcx 323 228 01 27 36 -4 -9 // 0430 y, front
// Type 4 - level 1
505 images/processedp1.pcx 363 132 01 27 36 -30 -9 // 042D x, back
506 images/processedp1.pcx 363 164 01 27 36 -30 -9 // 042E x, front
507 images/processedp1.pcx 363 196 01 27 36 -4 -9 // 042F y, back
508 images/processedp1.pcx 363 228 01 27 36 -4 -9 // 0430 y, front
// Type 4 - level 2
509 images/processedp1.pcx 403 132 01 27 36 -30 -9 // 042D x, back
510 images/processedp1.pcx 403 164 01 27 36 -30 -9 // 042E x, front
511 images/processedp1.pcx 403 196 01 27 36 -4 -9 // 042F y, back
512 images/processedp1.pcx 403 228 01 27 36 -4 -9 // 0430 y, front
// Type 4 - level 3
513 images/processedp1.pcx 443 132 01 27 36 -30 -9 // 042D x, back
514 images/processedp1.pcx 443 164 01 27 36 -30 -9 // 042E x, front
515 images/processedp1.pcx 443 196 01 27 36 -4 -9 // 042F y, back
516 images/processedp1.pcx 443 228 01 27 36 -4 -9 // 0430 y, front

517 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

518 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

519 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

520 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

521 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

522 * 35	 02 04 14 // ID
0E 01
\w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6 \w6
\w6

523 * 35	 02 04 15 // ID
0E 01
\w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6
\w6

524 * 35	 02 04 16 // ID
0E 01
\w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6
\w6

525 * 35	 02 04 17 // ID
0E 01
\w0 \w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5
\w6

526 * 15	 02 04 01 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0014
\wx0015
\wx0016
\wx0017

527 * 35	 02 04 18 // ID
0E 01
\w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9 \w9
\w9

528 * 35	 02 04 19 // ID
0E 01
\w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9
\w9

529 * 35	 02 04 1A // ID
0E 01
\w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9
\w9

530 * 35	 02 04 1B // ID
0E 01
\w0 \w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8
\w9

531 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0018
\wx0019
\wx001A
\wx001B

532 * 35	 02 04 1C // ID
0E 01
\w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12 \w12
\w12

533 * 35	 02 04 1D // ID
0E 01
\w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12
\w12

534 * 35	 02 04 1E // ID
0E 01
\w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12
\w12

535 * 35	 02 04 1F // ID
0E 01
\w0 \w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11
\w12

536 * 15	 02 04 03 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx001C
\wx001D
\wx001E
\wx001F

537 * 15	 02 04 E0 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
10 // use bits 16 and 17
04
\wx0000
\wx0001
\wx0002
\wx0003

// Empty
538 * 7	 02 04 DF // ID
00 01
\w0

// Wood platforms

539 * 4	 01 04 04 08
// Empty
540 images/newwood4.pcx 3 52 09 1 1 0 0 // 042D x, back type 1
541 images/newwood4.pcx 3 52 09 1 1 0 0 // 042E x, front type 1
542 images/newwood4.pcx 3 52 09 1 1 0 0 // 042F y, back type 1
543 images/newwood4.pcx 3 52 09 1 1 0 0 // 0430 y, front type 1
544 images/newwood4.pcx 3 52 09 1 1 0 0 // 0431 x, back type 2
545 images/newwood4.pcx 3 52 09 1 1 0 0 // 0432 x, front type 2
546 images/newwood4.pcx 3 52 09 1 1 0 0 // 0433 y, back type 2
547 images/newwood4.pcx 3 52 09 1 1 0 0 // 0434 y, front type 2
// Level 1
548 images/newwood4.pcx 3 52 09 12 17 -9 0 // 042D x, back type 1
549 images/newwood4.pcx 3 79 09 12 17 -12 -2 // 042E x, front type 1
550 images/newwood4.pcx 111 52 09 12 17 10 7 // 042F y, back type 1
551 images/newwood4.pcx 111 79 09 14 21 -8 -3 // 0430 y, front type 1
552 images/newwood4.pcx 227 52 09 12 17 -29 5 // 0431 x, back type 2
553 images/newwood4.pcx 227 79 09 12 17 -8 0 // 0432 x, front type 2
554 images/newwood4.pcx 329 52 09 12 17 -2 -3 // 0433 y, back type 2
555 images/newwood4.pcx 329 79 09 14 21 8 5 // 0434 y, front type 2
// Level 2
556 images/newwood4.pcx 25 52 09 17 21 -13 -5 // 042D x, back type 1
557 images/newwood4.pcx 25 79 09 20 37 -28 -2 // 042E x, front type 1
558 images/newwood4.pcx 140 52 09 21 34 -3 -2 // 042F y, back type 1
559 images/newwood4.pcx 140 79 09 22 36 -8 -3 // 0430 y, front type 1
560 images/newwood4.pcx 249 52 09 14 21 -29 5 // 0431 x, back type 2
561 images/newwood4.pcx 249 79 09 25 33 -24 -5 // 0432 x, front type 2
562 images/newwood4.pcx 355 52 09 20 36 -6 -3 // 0433 y, back type 2
563 images/newwood4.pcx 355 79 09 21 32 -3 -2 // 0434 y, front type 2
// Level 3
564 images/newwood4.pcx 69 52 09 24 36 -28 -5 // 042D x, back type 1
565 images/newwood4.pcx 69 79 09 25 37 -28 -5 // 042E x, front type 1
566 images/newwood4.pcx 183 52 09 25 38 -7 -6 // 042F y, back type 1
567 images/newwood4.pcx 183 79 09 25 36 -8 -6 // 0430 y, front type 1
568 images/newwood4.pcx 287 52 09 22 37 -29 -3 // 0431 x, back type 2
569 images/newwood4.pcx 287 79 09 25 37 -28 -5 // 0432 x, front type 2
570 images/newwood4.pcx 396 52 09 25 36 -6 -6 // 0433 y, back type 2
571 images/newwood4.pcx 396 79 09 24 36 -7 -5 // 0434 y, front type 2

572 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

573 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

574 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

575 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

576 * 15	 02 04 DE // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

// Empty
577 * 7	 02 04 DD // ID
00 01
\w0

// Container platforms

578 * 4	 01 04 0D 04
// Empty
579 images/newcontainers2.pcx 4 293 09 1 1 0 0 // 042D x, back  level 0
580 images/newcontainers2.pcx 4 293 09 1 1 0 0 // 042E x, front level 0
581 images/newcontainers2.pcx 4 293 09 1 1 0 0 // 042F x, back  level 0
582 images/newcontainers2.pcx 4 293 09 1 1 0 0 // 0430 x, front level 0

// Random set 1
583 images/newcontainers2.pcx 4 293 09 31 33 -28 -13 // 042D x, back  level 1
584 images/newcontainers2.pcx 4 332 09 31 33 -28 -13 // 042E x, front level 1
585 images/newcontainers2.pcx 230 293 09 31 33 -3 -13 // 042F y, back  level 1
586 images/newcontainers2.pcx 230 332 09 31 33 -3 -13 // 0430 y, front level 1

587 images/newcontainers2.pcx 40 293 09 31 33 -28 -13 // 042D x, back  level 2
588 images/newcontainers2.pcx 40 332 09 31 33 -28 -13 // 042E x, front level 2
589 images/newcontainers2.pcx 265 293 09 31 33 -3 -13 // 042F y, back  level 2
590 images/newcontainers2.pcx 265 332 09 31 33 -3 -13 // 0430 y, front level 2

591 images/newcontainers2.pcx 76 293 09 31 33 -28 -13 // 042D x, back  level 3
592 images/newcontainers2.pcx 76 332 09 31 33 -28 -13 // 042E x, front level 3
593 images/newcontainers2.pcx 300 293 09 31 33 -3 -13 // 042F y, back  level 3
594 images/newcontainers2.pcx 300 332 09 31 33 -3 -13 // 0430 y, front level 3

// Random set 2
595 images/newcontainers2.pcx 117 293 09 31 33 -28 -13 // 042D x, back  level 1
596 images/newcontainers2.pcx 117 332 09 31 33 -28 -13 // 042E x, front level 1
597 images/newcontainers2.pcx 340 293 09 31 33 -3 -13 // 042F y, back  level 1
598 images/newcontainers2.pcx 340 332 09 31 33 -3 -13 // 0430 y, front level 1

599 images/newcontainers2.pcx 153 293 09 31 33 -28 -13 // 042D x, back  level 2
600 images/newcontainers2.pcx 153 332 09 31 33 -28 -13 // 042E x, front level 2
601 images/newcontainers2.pcx 375 293 09 31 33 -3 -13 // 042F y, back  level 2
602 images/newcontainers2.pcx 375 332 09 31 33 -3 -13 // 0430 y, front level 2

603 images/newcontainers2.pcx 189 293 09 31 33 -28 -13 // 042D x, back  level 3
604 images/newcontainers2.pcx 189 332 09 31 33 -28 -13 // 042E x, front level 3
605 images/newcontainers2.pcx 410 293 09 31 33 -3 -13 // 042F y, back  level 3
606 images/newcontainers2.pcx 410 332 09 31 33 -3 -13 // 0430 y, front level 3

// Random set 3
607 images/newcontainers2.pcx 4 372 01 31 33 -28 -13 // 042D x, back  level 1
608 images/newcontainers2.pcx 4 411 01 31 33 -28 -13 // 042E x, front level 1
609 images/newcontainers2.pcx 230 372 01 31 33 -3 -13 // 042F y, back  level 1
610 images/newcontainers2.pcx 230 411 01 31 33 -3 -13 // 0430 y, front level 1

611 images/newcontainers2.pcx 40 372 01 31 33 -28 -13 // 042D x, back  level 2
612 images/newcontainers2.pcx 40 411 01 31 33 -28 -13 // 042E x, front level 2
613 images/newcontainers2.pcx 265 372 01 31 33 -3 -13 // 042F y, back  level 2
614 images/newcontainers2.pcx 265 411 01 31 33 -3 -13 // 0430 y, front level 2

615 images/newcontainers2.pcx 76 372 01 31 33 -28 -13 // 042D x, back  level 3
616 images/newcontainers2.pcx 76 411 01 31 33 -28 -13 // 042E x, front level 3
617 images/newcontainers2.pcx 300 372 01 31 33 -3 -13 // 042F y, back  level 3
618 images/newcontainers2.pcx 300 411 01 31 33 -3 -13 // 0430 y, front level 3

// Random set 4
619 images/newcontainers2.pcx 117 372 01 31 33 -28 -13 // 042D x, back  level 1
620 images/newcontainers2.pcx 117 411 01 31 33 -28 -13 // 042E x, front level 1
621 images/newcontainers2.pcx 340 372 01 31 33 -3 -13 // 042F y, back  level 1
622 images/newcontainers2.pcx 340 411 01 31 33 -3 -13 // 0430 y, front level 1

623 images/newcontainers2.pcx 153 372 01 31 33 -28 -13 // 042D x, back  level 2
624 images/newcontainers2.pcx 153 411 01 31 33 -28 -13 // 042E x, front level 2
625 images/newcontainers2.pcx 375 372 01 31 33 -3 -13 // 042F y, back  level 2
626 images/newcontainers2.pcx 375 411 01 31 33 -3 -13 // 0430 y, front level 2

627 images/newcontainers2.pcx 189 372 01 31 33 -28 -13 // 042D x, back  level 3
628 images/newcontainers2.pcx 189 411 01 31 33 -28 -13 // 042E x, front level 3
629 images/newcontainers2.pcx 410 372 01 31 33 -3 -13 // 042F y, back  level 3
630 images/newcontainers2.pcx 410 411 01 31 33 -3 -13 // 0430 y, front level 3

631 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

632 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

633 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

634 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

635 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

636 * 35	 02 04 14 // ID
0E 01
\w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6 \w6
\w6

637 * 35	 02 04 15 // ID
0E 01
\w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6
\w6

638 * 35	 02 04 16 // ID
0E 01
\w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6
\w6

639 * 35	 02 04 17 // ID
0E 01
\w0 \w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5
\w6

640 * 15	 02 04 01 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0014
\wx0015
\wx0016
\wx0017

641 * 35	 02 04 18 // ID
0E 01
\w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9 \w9
\w9

642 * 35	 02 04 19 // ID
0E 01
\w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9
\w9

643 * 35	 02 04 1A // ID
0E 01
\w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9
\w9

644 * 35	 02 04 1B // ID
0E 01
\w0 \w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8
\w9

645 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0018
\wx0019
\wx001A
\wx001B

646 * 35	 02 04 1C // ID
0E 01
\w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12 \w12
\w12

647 * 35	 02 04 1D // ID
0E 01
\w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12
\w12

648 * 35	 02 04 1E // ID
0E 01
\w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12
\w12

649 * 35	 02 04 1F // ID
0E 01
\w0 \w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11
\w12

650 * 15	 02 04 03 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx001C
\wx001D
\wx001E
\wx001F

651 * 15	 02 04 DC // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
10 // use bits 16 and 17
04
\wx0000
\wx0001
\wx0002
\wx0003

// Empty
652 * 7	 02 04 DB // ID
00 01
\w0

// General cargo platforms

653 * 4	 01 04 0D 04
// Empty
654 images/newcrates.pcx 9 9 09 1 1 0 0 // 042D x, back  level 0
655 images/newcrates.pcx 9 9 09 1 1 0 0 // 042E x, front level 0
656 images/newcrates.pcx 9 9 09 1 1 0 0 // 042F y, back  level 0
657 images/newcrates.pcx 9 9 09 1 1 0 0 // 0430 y, front level 0

// Random set 1
658 images/newcrates.pcx 51 9 09 25 37 -27 -8 // 042D x, back  level 1
659 images/newcrates.pcx 9 9 09 25 37 -25 -7 // 042E x, front level 1
660 images/newcrates.pcx 51 105 09 25 37 -5 -8 // 042F y, back  level 1
661 images/newcrates.pcx 9 105 09 25 37 -7 -7 // 0430 y, front level 1

662 images/newcrates.pcx 51 40 09 25 37 -27 -8 // 042D x, back  level 2
663 images/newcrates.pcx 9 40 09 25 37 -25 -7 // 042E x, front level 2
664 images/newcrates.pcx 51 135 09 25 37 -5 -8 // 042F y, back  level 2
665 images/newcrates.pcx 9 135 09 25 37 -7 -7 // 0430 y, front level 2

666 images/newcrates.pcx 51 71 09 25 37 -27 -8 // 042D x, back  level 3
667 images/newcrates.pcx 9 71 09 25 37 -25 -7 // 042E x, front level 3
668 images/newcrates.pcx 51 165 09 25 37 -5 -8 // 042F y, back  level 3
669 images/newcrates.pcx 9 165 09 25 37 -7 -7 // 0430 y, front level 3

// Random set 2
670 images/newcrates.pcx 135 9 09 25 37 -27 -8 // 042D x, back  level 1
671 images/newcrates.pcx 93 9 09 25 37 -25 -7 // 042E x, front level 1
672 images/newcrates.pcx 135 105 09 25 37 -5 -8 // 042F y, back  level 1
673 images/newcrates.pcx 93 105 09 25 37 -7 -7 // 0430 y, front level 1

674 images/newcrates.pcx 135 40 09 25 37 -27 -8 // 042D x, back  level 2
675 images/newcrates.pcx 93 40 09 25 37 -25 -7 // 042E x, front level 2
676 images/newcrates.pcx 135 135 09 25 37 -5 -8 // 042F y, back  level 2
677 images/newcrates.pcx 93 135 09 25 37 -7 -7 // 0430 y, front level 2

678 images/newcrates.pcx 135 71 09 25 37 -27 -8 // 042D x, back  level 3
679 images/newcrates.pcx 93 71 09 25 37 -25 -7 // 042E x, front level 3
680 images/newcrates.pcx 135 165 09 25 37 -5 -8 // 042F y, back  level 3
681 images/newcrates.pcx 93 165 09 25 37 -7 -7 // 0430 y, front level 3

// Random set 3
682 images/newcrates.pcx 219 9 09 25 37 -27 -8 // 042D x, back  level 1
683 images/newcrates.pcx 177 9 09 25 37 -25 -7 // 042E x, front level 1
684 images/newcrates.pcx 219 105 09 25 37 -5 -8 // 042F y, back  level 1
685 images/newcrates.pcx 177 105 09 25 37 -7 -7 // 0430 y, front level 1

686 images/newcrates.pcx 219 40 09 25 37 -27 -8 // 042D x, back  level 2
687 images/newcrates.pcx 177 40 09 25 37 -25 -7 // 042E x, front level 2
688 images/newcrates.pcx 219 135 09 25 37 -5 -8 // 042F y, back  level 2
689 images/newcrates.pcx 177 135 09 25 37 -7 -7 // 0430 y, front level 2

690 images/newcrates.pcx 219 71 09 25 37 -27 -8 // 042D x, back  level 3
691 images/newcrates.pcx 177 71 09 25 37 -25 -7 // 042E x, front level 3
692 images/newcrates.pcx 219 165 09 25 37 -5 -8 // 042F y, back  level 3
693 images/newcrates.pcx 177 165 09 25 37 -7 -7 // 0430 y, front level 3

// Random set 4
694 images/newcrates.pcx 303 9 09 25 37 -27 -8 // 042D x, back  level 1
695 images/newcrates.pcx 261 9 09 25 37 -25 -7 // 042E x, front level 1
696 images/newcrates.pcx 303 105 09 25 37 -5 -8 // 042F y, back  level 1
697 images/newcrates.pcx 261 105 09 25 37 -7 -7 // 0430 y, front level 1

698 images/newcrates.pcx 303 40 09 25 37 -27 -8 // 042D x, back  level 2
699 images/newcrates.pcx 261 40 09 25 37 -25 -7 // 042E x, front level 2
700 images/newcrates.pcx 303 135 09 25 37 -5 -8 // 042F y, back  level 2
701 images/newcrates.pcx 261 135 09 25 37 -7 -7 // 0430 y, front level 2

702 images/newcrates.pcx 303 71 09 25 37 -27 -8 // 042D x, back  level 3
703 images/newcrates.pcx 261 71 09 25 37 -25 -7 // 042E x, front level 3
704 images/newcrates.pcx 303 165 09 25 37 -5 -8 // 042F y, back  level 3
705 images/newcrates.pcx 261 165 09 25 37 -7 -7 // 0430 y, front level 3

706 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

707 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

708 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

709 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

710 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

711 * 35	 02 04 14 // ID
0E 01
\w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6 \w6
\w6

712 * 35	 02 04 15 // ID
0E 01
\w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6
\w6

713 * 35	 02 04 16 // ID
0E 01
\w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6
\w6

714 * 35	 02 04 17 // ID
0E 01
\w0 \w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5
\w6

715 * 15	 02 04 01 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0014
\wx0015
\wx0016
\wx0017

716 * 35	 02 04 18 // ID
0E 01
\w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9 \w9
\w9

717 * 35	 02 04 19 // ID
0E 01
\w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9
\w9

718 * 35	 02 04 1A // ID
0E 01
\w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9
\w9

719 * 35	 02 04 1B // ID
0E 01
\w0 \w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8
\w9

720 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx0018
\wx0019
\wx001A
\wx001B

721 * 35	 02 04 1C // ID
0E 01
\w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12 \w12
\w12

722 * 35	 02 04 1D // ID
0E 01
\w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12
\w12

723 * 35	 02 04 1E // ID
0E 01
\w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12
\w12

724 * 35	 02 04 1F // ID
0E 01
\w0 \w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11
\w12

725 * 15	 02 04 03 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18 and 19
04
\wx001C
\wx001D
\wx001E
\wx001F

726 * 15	 02 04 DA // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
10 // use bits 16 and 17
04
\wx0000
\wx0001
\wx0002
\wx0003

// Empty
727 * 7	 02 04 D9 // ID
00 01
\w0

// Pig yard

728 * 4	 01 04 04 10
// Empty
729 images/newlivestock.pcx 5 6 01 24 42 -31 -4 // 042D x, 1 tile back
730 images/newlivestock.pcx 192 6 01 24 42 -31 -4 // 042E x, 1 tile front
731 images/newlivestock.pcx 379 6 01 24 42 -9 -4 // 042F y, 1 tile back
732 images/newlivestock.pcx 568 6 01 24 42 -9 -4 // 0430 y, 1 tile front
733 images/newlivestock.pcx 5 68 01 24 42 -31 -4 // 0431 x, N tile back
734 images/newlivestock.pcx 192 68 01 22 42 -31 -2 // 0432 x, N tile front
735 images/newlivestock.pcx 379 68 01 24 42 -9 -4 // 0433 y, N tile back
736 images/newlivestock.pcx 568 68 01 22 42 -9 -2 // 0434 y, N tile front
737 images/newlivestock.pcx 5 100 01 24 42 -31 -4 // 042D x, S tile back
738 images/newlivestock.pcx 192 100 01 24 42 -31 -4 // 042E x, S tile front
739 images/newlivestock.pcx 379 100 01 24 42 -9 -4 // 042F y, S tile back
740 images/newlivestock.pcx 568 100 01 24 42 -9 -4 // 0430 y, S tile front
741 images/newlivestock.pcx 5 37 01 24 42 -31 -4 // 0431 x, mid tile back
742 images/newlivestock.pcx 192 37 01 24 42 -31 -4 // 0432 x, mid tile front
743 images/newlivestock.pcx 379 37 01 24 42 -9 -4 // 0433 y, mid tile back
744 images/newlivestock.pcx 568 37 01 24 42 -9 -4 // 0434 y, mid tile front
// Level 1
745 images/newlivestock.pcx 51 6 01 24 42 -31 -4 // 042D x, 1 tile back
746 images/newlivestock.pcx 237 6 01 24 42 -31 -4 // 042E x, 1 tile front
747 images/newlivestock.pcx 425 6 01 24 42 -9 -4 // 042F y, 1 tile back
748 images/newlivestock.pcx 615 6 01 24 42 -9 -4 // 0430 y, 1 tile front
749 images/newlivestock.pcx 51 68 01 24 42 -31 -4 // 0431 x, N tile back
750 images/newlivestock.pcx 237 68 01 22 42 -31 -2 // 0432 x, N tile front
751 images/newlivestock.pcx 425 68 01 24 42 -9 -4 // 0433 y, N tile back
752 images/newlivestock.pcx 615 68 01 22 42 -9 -2 // 0434 y, N tile front
753 images/newlivestock.pcx 51 100 01 24 42 -31 -4 // 042D x, S tile back
754 images/newlivestock.pcx 237 100 01 24 42 -31 -4 // 042E x, S tile front
755 images/newlivestock.pcx 425 100 01 24 42 -9 -4 // 042F y, S tile back
756 images/newlivestock.pcx 615 100 01 24 42 -9 -4 // 0430 y, S tile front
757 images/newlivestock.pcx 51 37 01 24 42 -31 -4 // 0431 x, mid tile back
758 images/newlivestock.pcx 237 37 01 24 42 -31 -4 // 0432 x, mid tile front
759 images/newlivestock.pcx 425 37 01 24 42 -9 -4 // 0433 y, mid tile back
760 images/newlivestock.pcx 615 37 01 24 42 -9 -4 // 0434 y, mid tile front
// Level 2
761 images/newlivestock.pcx 97 6 01 24 42 -31 -4 // 042D x, 1 tile back
762 images/newlivestock.pcx 282 6 01 24 42 -31 -4 // 042E x, 1 tile front
763 images/newlivestock.pcx 471 6 01 24 42 -9 -4 // 042F y, 1 tile back
764 images/newlivestock.pcx 662 6 01 24 42 -9 -4 // 0430 y, 1 tile front
765 images/newlivestock.pcx 97 68 01 24 42 -31 -4 // 0431 x, N tile back
766 images/newlivestock.pcx 282 68 01 22 42 -31 -2 // 0432 x, N tile front
767 images/newlivestock.pcx 471 68 01 24 42 -9 -4 // 0433 y, N tile back
768 images/newlivestock.pcx 662 68 01 22 42 -9 -2 // 0434 y, N tile front
769 images/newlivestock.pcx 97 100 01 24 42 -31 -4 // 042D x, S tile back
770 images/newlivestock.pcx 282 100 01 24 42 -31 -4 // 042E x, S tile front
771 images/newlivestock.pcx 471 100 01 24 42 -9 -4 // 042F y, S tile back
772 images/newlivestock.pcx 662 100 01 24 42 -9 -4 // 0430 y, S tile front
773 images/newlivestock.pcx 97 37 01 24 42 -31 -4 // 0431 x, mid tile back
774 images/newlivestock.pcx 282 37 01 24 42 -31 -4 // 0432 x, mid tile front
775 images/newlivestock.pcx 471 37 01 24 42 -9 -4 // 0433 y, mid tile back
776 images/newlivestock.pcx 662 37 01 24 42 -9 -4 // 0434 y, mid tile front
// Level 3
777 images/newlivestock.pcx 143 6 01 24 42 -31 -4 // 042D x, 1 tile back
778 images/newlivestock.pcx 327 6 01 24 42 -31 -4 // 042E x, 1 tile front
779 images/newlivestock.pcx 518 6 01 24 42 -9 -4 // 042F y, 1 tile back
780 images/newlivestock.pcx 709 6 01 24 42 -9 -4 // 0430 y, 1 tile front
781 images/newlivestock.pcx 143 68 01 24 42 -31 -4 // 0431 x, N tile back
782 images/newlivestock.pcx 327 68 01 22 42 -31 -2 // 0432 x, N tile front
783 images/newlivestock.pcx 518 68 01 24 42 -9 -4 // 0433 y, N tile back
784 images/newlivestock.pcx 709 68 01 22 42 -9 -2 // 0434 y, N tile front
785 images/newlivestock.pcx 143 100 01 24 42 -31 -4 // 042D x, S tile back
786 images/newlivestock.pcx 327 100 01 24 42 -31 -4 // 042E x, S tile front
787 images/newlivestock.pcx 518 100 01 24 42 -9 -4 // 042F y, S tile back
788 images/newlivestock.pcx 709 100 01 24 42 -9 -4 // 0430 y, S tile front
789 images/newlivestock.pcx 143 37 01 24 42 -31 -4 // 0431 x, mid tile back
790 images/newlivestock.pcx 327 37 01 24 42 -31 -4 // 0432 x, mid tile front
791 images/newlivestock.pcx 518 37 01 24 42 -9 -4 // 0433 y, mid tile back
792 images/newlivestock.pcx 709 37 01 24 42 -9 -4 // 0434 y, mid tile front

793 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

794 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

795 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

796 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

797 * 15	 02 04 D8 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18+
04
\wx0010
\wx0011
\wx0012
\wx0013

// Empty
798 * 7	 02 04 D7 // ID
00 01
\w0

// Cattle docks

799 * 4	 01 04 04 10
// Empty
800 images/newlivestock.pcx 5 136 01 27 42 -31 -7 // 042D x, N tile, no platform to N
801 images/newlivestock.pcx 401 136 01 27 42 -9 -7 // 042E y, N tile, no platform to N
802 images/newlivestock.pcx 201 136 01 27 42 -31 -7 // 042F x, 1 tile, no platform to N
803 images/newlivestock.pcx 596 136 01 27 42 -9 -7 // 0430 y, 1 tile, no platform to N
804 images/newlivestock.pcx 5 170 01 27 42 -31 -7 // 0431 x, N tile, platform to N
805 images/newlivestock.pcx 401 170 01 27 42 -9 -7 // 0432 y, N tile, platform to N
806 images/newlivestock.pcx 201 170 01 27 42 -31 -7 // 0433 x, 1 tile, platform to N
807 images/newlivestock.pcx 596 170 01 27 42 -9 -7 // 0434 y, 1 tile, platform to N
808 images/newlivestock.pcx 5 204 01 27 42 -31 -7 // 0435 x, mid tile, no platform to N
809 images/newlivestock.pcx 401 204 01 27 42 -9 -7 // 0436 y, mid tile, no platform to N
810 images/newlivestock.pcx 201 204 01 27 42 -31 -7 // 0437 x, S tile, no platform to N
811 images/newlivestock.pcx 596 204 01 27 42 -9 -7 // 0438 y, S tile, no platform to N
812 images/newlivestock.pcx 5 242 01 23 42 -31 -3 // 0439 x, mid tile, platform to N
813 images/newlivestock.pcx 401 242 01 23 42 -9 -3 // 043A y, mid tile, platform to N
814 images/newlivestock.pcx 201 242 01 23 42 -31 -3 // 043B x, S tile, platform to N
815 images/newlivestock.pcx 596 242 01 23 42 -9 -3 // 043C y, S tile, platform to N
// Level 1
816 images/newlivestock.pcx 52 136 01 27 42 -31 -7 // 042D x, N tile, no platform to N
817 images/newlivestock.pcx 449 136 01 27 42 -9 -7 // 042E y, N tile, no platform to N
818 images/newlivestock.pcx 249 136 01 27 42 -31 -7 // 042F x, 1 tile, no platform to N
819 images/newlivestock.pcx 644 136 01 27 42 -9 -7 // 0430 y, 1 tile, no platform to N
820 images/newlivestock.pcx 52 170 01 27 42 -31 -7 // 0431 x, N tile, platform to N
821 images/newlivestock.pcx 449 170 01 27 42 -9 -7 // 0432 y, N tile, platform to N
822 images/newlivestock.pcx 249 170 01 27 42 -31 -7 // 0433 x, 1 tile, platform to N
823 images/newlivestock.pcx 644 170 01 27 42 -9 -7 // 0434 y, 1 tile, platform to N
824 images/newlivestock.pcx 52 204 01 27 42 -31 -7 // 0435 x, mid tile, no platform to N
825 images/newlivestock.pcx 449 204 01 27 42 -9 -7 // 0436 y, mid tile, no platform to N
826 images/newlivestock.pcx 249 204 01 27 42 -31 -7 // 0437 x, S tile, no platform to N
827 images/newlivestock.pcx 644 204 01 27 42 -9 -7 // 0438 y, S tile, no platform to N
828 images/newlivestock.pcx 52 242 01 23 42 -31 -3 // 0439 x, mid tile, platform to N
829 images/newlivestock.pcx 449 242 01 23 42 -9 -3 // 043A y, mid tile, platform to N
830 images/newlivestock.pcx 249 239 01 26 42 -31 -6 // 043B x, S tile, platform to N
831 images/newlivestock.pcx 644 242 01 23 42 -9 -3 // 043C y, S tile, platform to N
// Level 2
832 images/newlivestock.pcx 99 136 01 27 42 -31 -7 // 042D x, N tile, no platform to N
833 images/newlivestock.pcx 497 136 01 27 42 -9 -7 // 042E y, N tile, no platform to N
834 images/newlivestock.pcx 298 136 01 27 42 -31 -7 // 042F x, 1 tile, no platform to N
835 images/newlivestock.pcx 692 136 01 27 42 -9 -7 // 0430 y, 1 tile, no platform to N
836 images/newlivestock.pcx 99 170 01 27 42 -31 -7 // 0431 x, N tile, platform to N
837 images/newlivestock.pcx 497 170 01 27 42 -9 -7 // 0432 y, N tile, platform to N
838 images/newlivestock.pcx 298 170 01 27 42 -31 -7 // 0433 x, 1 tile, platform to N
839 images/newlivestock.pcx 692 170 01 27 42 -9 -7 // 0434 y, 1 tile, platform to N
840 images/newlivestock.pcx 99 204 01 27 42 -31 -7 // 0435 x, mid tile, no platform to N
841 images/newlivestock.pcx 497 204 01 27 42 -9 -7 // 0436 y, mid tile, no platform to N
842 images/newlivestock.pcx 298 204 01 27 42 -31 -7 // 0437 x, S tile, no platform to N
843 images/newlivestock.pcx 692 204 01 27 42 -9 -7 // 0438 y, S tile, no platform to N
844 images/newlivestock.pcx 99 242 01 23 42 -31 -3 // 0439 x, mid tile, platform to N
845 images/newlivestock.pcx 497 242 01 23 42 -9 -3 // 043A y, mid tile, platform to N
846 images/newlivestock.pcx 298 204 01 27 42 -31 -7 // 043B x, S tile, platform to N
847 images/newlivestock.pcx 692 204 01 27 42 -9 -7 // 043C y, S tile, platform to N
// Level 3
848 images/newlivestock.pcx 147 136 01 27 42 -31 -7 // 042D x, N tile, no platform to N
849 images/newlivestock.pcx 545 136 01 27 42 -9 -7 // 042E y, N tile, no platform to N
850 images/newlivestock.pcx 347 136 01 27 42 -31 -7 // 042F x, 1 tile, no platform to N
851 images/newlivestock.pcx 740 136 01 27 42 -9 -7 // 0430 y, 1 tile, no platform to N
852 images/newlivestock.pcx 147 170 01 27 42 -31 -7 // 0431 x, N tile, platform to N
853 images/newlivestock.pcx 545 170 01 27 42 -9 -7 // 0432 y, N tile, platform to N
854 images/newlivestock.pcx 347 170 01 27 42 -31 -7 // 0433 x, 1 tile, platform to N
855 images/newlivestock.pcx 740 170 01 27 42 -9 -7 // 0434 y, 1 tile, platform to N
856 images/newlivestock.pcx 147 204 01 27 42 -31 -7 // 0435 x, mid tile, no platform to N
857 images/newlivestock.pcx 545 204 01 27 42 -9 -7 // 0436 y, mid tile, no platform to N
858 images/newlivestock.pcx 347 204 01 27 42 -31 -7 // 0437 x, S tile, no platform to N
859 images/newlivestock.pcx 740 204 01 27 42 -9 -7 // 0438 y, S tile, no platform to N
860 images/newlivestock.pcx 147 239 01 26 42 -31 -6 // 0439 x, mid tile, platform to N
861 images/newlivestock.pcx 545 238 01 27 42 -9 -7 // 043A y, mid tile, platform to N
862 images/newlivestock.pcx 347 239 01 26 42 -31 -6 // 043B x, S tile, platform to N
863 images/newlivestock.pcx 740 238 01 27 42 -9 -7 // 043C y, S tile, platform to N

864 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

865 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

866 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

867 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

868 * 15	 02 04 D6 // ID
80
00 // no more cargo (triggered by random in "empty" graphics chain)
12 // use bits 18+
04
\wx0010
\wx0011
\wx0012
\wx0013

// Empty
869 * 7	 02 04 D5 // ID
00 01
\w0

// Milk tanks

870 * 4	 01 04 01 18
871 images/newlivestock.pcx 5 321 01 24 12 -28 -5 // 042D x, N end back
872 images/newlivestock.pcx 5 362 01 11 19 -29 7 // 042E x, N end front
873 images/newlivestock.pcx 5 396 01 24 12 18 -5 // 042F y, N end back
874 images/newlivestock.pcx 5 435 01 11 19 12 7 // 0430 y, N end front
875 images/newlivestock.pcx 21 321 01 32 38 -28 -13 // 0431 x, mid 1 back
876 images/newlivestock.pcx 28 362 01 27 36 -31 -8 // 0432 x, mid 1 front
877 images/newlivestock.pcx 21 396 01 32 38 -8 -13 // 0433 y, mid 1 back
878 images/newlivestock.pcx 28 435 01 27 36 -3 -8 // 0434 y, mid 1 front
879 images/newlivestock.pcx 63 321 01 32 28 -28 -13 // 0435 x, mid 2 back
880 images/newlivestock.pcx 68 362 01 26 34 -29 -8 // 0436 x, mid 2 front
881 images/newlivestock.pcx 63 396 01 32 28 2 -13 // 0437 y, mid 2 back
882 images/newlivestock.pcx 68 435 01 26 34 -3 -8 // 0438 y, mid 2 front
883 images/newlivestock.pcx 95 321 01 32 35 -28 -13 // 0439 x, mid 3 back
884 images/newlivestock.pcx 106 362 01 17 34 -29 1 // 043A x, mid 3 front
885 images/newlivestock.pcx 95 396 01 32 35 -5 -13 // 043B y, mid 3 back
886 images/newlivestock.pcx 106 435 01 17 34 -3 1 // 043C y, mid 3 front
887 images/newlivestock.pcx 134 321 01 32 28 -28 -13 // 043D x, mid 4 back
888 images/newlivestock.pcx 144 362 01 23 37 -29 -4 // 043E x, mid 4 front
889 images/newlivestock.pcx 134 396 01 32 28 2 -13 // 043F y, mid 4 back
890 images/newlivestock.pcx 144 435 01 23 37 -6 -4 // 0440 y, mid 4 front
891 images/newlivestock.pcx 5 321 01 24 12 -12 -13 // 0441 x, S end back
892 images/newlivestock.pcx 185 362 01 10 19 -14 1 // 0442 x, S end front
893 images/newlivestock.pcx 5 396 01 24 12 2 -13 // 0443 y, S end back
894 images/newlivestock.pcx 185 435 01 10 19 -3 1 // 0444 y, S end front

895 * 7	 02 04 D4 // ID
00 01
\w0

// Animated flag

896 * 4	 01 04 01 08
897 images/newfacilities5.pcx 278 100 01 14 6 -1 -14 // 042D frame 0
898 images/newfacilities5.pcx 287 100 01 14 6 -1 -14 // 042E frame 1
899 images/newfacilities5.pcx 296 100 01 14 6 -1 -14 // 042F frame 2
900 images/newfacilities5.pcx 305 100 01 14 6 -1 -14 // 0430 frame 3
901 images/newfacilities5.pcx 314 100 01 14 6 -1 -14 // 0431 frame 4
902 images/newfacilities5.pcx 323 100 01 14 6 -1 -14 // 0432 frame 5
903 images/newfacilities5.pcx 332 100 01 14 6 -1 -14 // 0433 frame 6
904 images/newfacilities5.pcx 341 100 01 14 6 -1 -14 // 0434 frame 7

905 * 7	 02 04 D3 // ID
00 01
\w0

// Fences

906 * 4	 01 04 01 04
907 images/newfixtures2.pcx 18 149 01 23 33 -32 -7 // 042D fence NW
908 images/newfixtures2.pcx 55 149 01 23 33 0 -7 // 042E fence NE
909 images/newfixtures2.pcx 18 149 01 23 33 -30 -6 // 042F fence SE
910 images/newfixtures2.pcx 55 149 01 23 33 -2 -6 // 0430 fence SW

911 * 7	 02 04 D2 // ID
00 01
\w0

// Forklifts with cargo

912 * 4	 01 04 01 0E
913 images/vehicles.pcx 168 209 41 14 15 -11 -7 // 042D x, forklift yellow
914 images/vehicles.pcx 204 209 41 14 15 -11 -7 // 042E x, forklift cc
915 images/vehicles.pcx 184 209 41 14 15 -4 -7 // 042F y, forklift yellow
916 images/vehicles.pcx 220 209 41 14 15 -4 -7 // 0430 y, forklift cc
917 images/vehicles.pcx 280 209 01 6 5 0 0 // 0431 x, paper load
918 images/vehicles.pcx 290 209 01 6 5 0 0 // 0432 y, paper load
919 images/vehicles.pcx 240 209 01 7 5 0 0 // 0433 x, crate load 1
920 images/vehicles.pcx 250 209 01 7 5 0 0 // 0434 y, crate load 1
921 images/vehicles.pcx 260 209 01 7 5 0 0 // 0435 x, crate load 2
922 images/vehicles.pcx 270 209 01 7 5 0 0 // 0436 y, crate load 2
923 images/vehicles.pcx 300 209 01 7 3 0 -1 // 0437 x, barrel load 1
924 images/vehicles.pcx 308 209 01 7 3 2 -1 // 0438 y, barrel load 1
925 images/vehicles.pcx 316 209 01 7 3 0 -1 // 0439 x, barrel load 2
926 images/vehicles.pcx 324 209 01 7 3 2 -1 // 043A y, barrel load 2

927 * 7	 02 04 D1 // ID
00 01
\w0

// Freight station buildings

928 * 4	 01 04 01 2C
929 images/freightstat.pcx 8 8 09 34 40 -31 -15 // 042D x, building N
930 images/freightstat.pcx 55 8 09 45 40 -31 -26 // 042E x, building N with clock tower
931 images/freightstat.pcx 102 8 09 34 40 -7 -15 // 042F y, building N
932 images/freightstat.pcx 149 8 09 45 40 -7 -26 // 0430 y, building N with clock tower

933 images/freightstat.pcx 8 65 09 30 40 -31 -11 // 0431 x, building S
934 images/freightstat.pcx 55 65 09 30 40 -31 -11 // 0432 x, building S no gable
935 images/freightstat.pcx 102 65 09 30 40 -7 -11 // 0433 y, building S
936 images/freightstat.pcx 149 65 09 30 40 -7 -11 // 0434 y, building S no gable

937 images/freightstat.pcx 8 146 09 38 45 -36 -19 // 0435 x, building S with conveyor
938 images/freightstat.pcx 59 146 09 38 45 -7 -19 // 0436 y, building S with conveyor
939 images/freightstat.pcx 8 105 09 33 35 -36 -19 // 0437 x, conveyor S
940 images/freightstat.pcx 50 105 09 33 35 3 -19 // 0438 y, conveyor S
941 images/freightstat.pcx 92 105 09 22 19 -20 -11 // 0439 x, conveyor N
942 images/freightstat.pcx 118 105 09 22 19 3 -11 // 043A y, conveyor N

943 images/freightstat.pcx 148 105 09 13 10 -3 -9 // 043B x, little hut N
944 images/freightstat.pcx 165 105 09 13 10 -5 -9 // 043C y, little hut S

945 images/freightstat.pcx 8 195 01 23 28 0 0 // 043D x, building overlay S 1
946 images/freightstat.pcx 41 195 01 15 24 4 8 // 043E x, building overlay S 2
947 images/freightstat.pcx 70 195 01 23 28 0 0 // 043F y, building overlay S 1
948 images/freightstat.pcx 104 195 01 15 24 0 8 // 0440 y, building overlay S 2
949 images/freightstat.pcx 135 195 01 17 35 0 0 // 0441 x, building overlay N 1
950 images/freightstat.pcx 176 195 01 21 26 9 -5 // 0442 x, building overlay N 2
951 images/freightstat.pcx 208 195 01 17 35 0 0 // 0443 y, building overlay N 1
952 images/freightstat.pcx 249 195 01 21 26 0 -5 // 0444 y, building overlay N 2

953 images/freightstat.pcx 110 146 01 19 26 -21 -7 // 0445 x, platform with forklift 1
954 images/freightstat.pcx 142 146 01 20 30 -25 -5 // 0446 x, platform with forklift 2
955 images/freightstat.pcx 214 146 01 19 26 -3 -7 // 0447 y, platform with forklift 1
956 images/freightstat.pcx 178 146 01 19 30 -3 -5 // 0448 y, platform with forklift 2

957 images/freightstat.pcx 196 8 01 24 40 0 0 // 0449 x, building N snow
958 images/freightstat.pcx 239 8 01 35 40 0 0 // 044A x, building N with clock tower snow
959 images/freightstat.pcx 282 8 01 24 40 0 0 // 044B y, building N snow
960 images/freightstat.pcx 325 8 01 35 40 0 0 // 044C y, building N with clock tower snow

961 images/freightstat.pcx 196 65 01 16 40 0 0 // 044D x, building S snow
962 images/freightstat.pcx 239 65 01 16 40 0 0 // 044E x, building S no gable snow
963 images/freightstat.pcx 282 65 01 16 40 0 0 // 044F y, building S snow
964 images/freightstat.pcx 325 65 01 16 40 0 0 // 0450 y, building S no gable snow

965 images/freightstat.pcx 246 146 01 24 45 0 0 // 0451 x, building S with conveyor snow
966 images/freightstat.pcx 294 146 01 24 45 0 0 // 0452 y, building S with conveyor snow
967 images/freightstat.pcx 184 105 01 18 35 0 0 // 0453 x, conveyor S snow
968 images/freightstat.pcx 222 105 01 18 35 0 0 // 0454 y, conveyor S snow
969 images/freightstat.pcx 260 105 01 10 19 0 0 // 0455 x, conveyor N snow
970 images/freightstat.pcx 282 105 01 10 19 0 0 // 0456 y, conveyor N snow

971 images/freightstat.pcx 304 105 01 6 10 0 0 // 0457 x, little hut N snow
972 images/freightstat.pcx 317 105 01 6 10 0 0 // 0458 y, little hut S snow

973 * 7	 02 04 D0 // ID
00 01
\w0

// Crawler crane

974 * 4	 01 04 01 0C
975 images/vehicles.pcx 158 9 01 37 29 -25 -21 // 042D x, crawler crane cc N
976 images/vehicles.pcx 192 9 01 37 29 -2 -21 // 042E y, crawler crane cc N
977 images/vehicles.pcx 226 9 01 38 31 -23 -29 // 042F x, crawler crane cc S
978 images/vehicles.pcx 262 9 01 38 31 -6 -29 // 0430 y, crawler crane cc S

979 images/vehicles.pcx 302 9 01 37 29 -25 -21 // 0431 x, crawler crane r/w N
980 images/vehicles.pcx 336 9 01 37 29 -2 -21 // 0432 y, crawler crane r/w N
981 images/vehicles.pcx 370 9 01 38 31 -23 -29 // 0433 x, crawler crane r/w S
982 images/vehicles.pcx 406 9 01 38 31 -6 -29 // 0434 y, crawler crane r/w S

983 images/vehicles.pcx 21 9 01 36 28 -23 -21 // 0435 x, crawler crane steam N
984 images/vehicles.pcx 54 9 01 36 28 -3 -21 // 0436 y, crawler crane steam N
985 images/vehicles.pcx 87 9 01 36 28 -21 -27 // 0437 x, crawler crane steam S
986 images/vehicles.pcx 120 9 01 36 29 -5 -27 // 0438 y, crawler crane steam S

987 * 7	 02 04 CF // ID
00 01
\w0

// Bulldozer

988 * 4	 01 04 01 04
989 images/vehicles.pcx 44 267 01 13 19 -13 -5 // 042D x, bulldozer front view
990 images/vehicles.pcx 21 235 01 13 19 -4 -5 // 042E y, bulldozer front view
991 images/vehicles.pcx 44 235 01 13 17 -12 -5 // 042F x, bulldozer rear view
992 images/vehicles.pcx 21 267 01 14 17 -4 -6 // 0430 y, bulldozer rear view

993 * 7	 02 04 CE // ID
00 01
\w0

// Roads

994 * 4	 01 04 01 07
995 images/newroads4.pcx 4 3 01 31 64 -31 0 // 042D x, straight road
996 images/newroads4.pcx 72 3 01 31 64 -31 0 // 042E y, straight road
997 images/newroads4.pcx 4 41 01 31 64 -31 0 // 042F x, t-junction N
998 images/newroads4.pcx 72 41 01 31 64 -31 0 // 0430 y, t-junction N
999 images/newroads4.pcx 4 78 01 31 64 -31 0 // 0431 x, t-junction S
1000 images/newroads4.pcx 72 78 01 31 64 -31 0 // 0432 y, t-junction S
1001 images/newroads4.pcx 4 386 01 31 64 -31 0 // 0433 cross-roads

1002 * 7	 02 04 CD // ID
00 01
\w0

// Crane on rails

1003 * 4	 01 04 01 30
1004 images/newfixtures2.pcx 18 457 09 23 42 -31 -3 // 042D x, back platform
1005 images/newfixtures2.pcx 64 457 09 23 42 -31 -3 // 042E x, front platform
1006 images/newfixtures2.pcx 196 457 09 23 42 -9 -3 // 042F y, back platform
1007 images/newfixtures2.pcx 241 457 09 23 42 -9 -3 // 0430 y, front platform

1008 images/newfixtures2.pcx 138 457 01 32 2 -13 -7 // 0431 x, back crane 1
1009 images/newfixtures2.pcx 134 457 01 32 6 -13 -9 // 0432 x, back crane 2
1010 images/newfixtures2.pcx 130 457 01 32 10 -13 -11 // 0433 x, back crane 3
1011 images/newfixtures2.pcx 126 457 01 32 14 -13 -13 // 0434 x, back crane 4
1012 images/newfixtures2.pcx 122 457 01 32 18 -13 -15 // 0435 x, back crane 5
1013 images/newfixtures2.pcx 112 457 01 32 28 -19 -17 // 0436 x, back crane 6 to 8 (7 - centre)
1014 images/newfixtures2.pcx 112 457 01 32 26 -15 -19 // 0437 x, back crane 9
1015 images/newfixtures2.pcx 112 457 01 32 22 -11 -21 // 0438 x, back crane 10
1016 images/newfixtures2.pcx 112 457 01 32 18 -7 -23 // 0439 x, back crane 11
1017 images/newfixtures2.pcx 112 457 01 32 14 -3 -25 // 043A x, back crane 12
1018 images/newfixtures2.pcx 112 457 01 32 10 1 -27 // 043B x, back crane 13

1019 images/newfixtures2.pcx 186 457 01 43 2 -13 -18 // 043C x, front crane 1
1020 images/newfixtures2.pcx 182 457 01 43 6 -13 -20 // 043D x, front crane 2
1021 images/newfixtures2.pcx 178 457 01 43 10 -13 -22 // 043E x, front crane 3
1022 images/newfixtures2.pcx 174 457 01 43 14 -13 -24 // 043F x, front crane 4
1023 images/newfixtures2.pcx 170 457 01 43 18 -13 -26 // 0440 x, front crane 5
1024 images/newfixtures2.pcx 144 457 01 43 44 -35 -28 // 0441 x, front crane 6 to 8 (7 - centre)
1025 images/newfixtures2.pcx 144 457 01 43 42 -31 -30 // 0442 x, front crane 9
1026 images/newfixtures2.pcx 144 457 01 43 38 -27 -32 // 0443 x, front crane 10
1027 images/newfixtures2.pcx 144 457 01 43 34 -23 -34 // 0444 x, front crane 11
1028 images/newfixtures2.pcx 144 457 01 43 30 -19 -36 // 0445 x, front crane 12
1029 images/newfixtures2.pcx 144 457 01 43 26 -15 -38 // 0446 x, front crane 13

1030 images/newfixtures2.pcx 287 457 01 32 2 15 -7 // 0447 y, back crane 1
1031 images/newfixtures2.pcx 287 457 01 32 6 11 -9 // 0448 y, back crane 2
1032 images/newfixtures2.pcx 287 457 01 32 10 7 -11 // 0449 y, back crane 3
1033 images/newfixtures2.pcx 287 457 01 32 14 3 -13 // 044A y, back crane 4
1034 images/newfixtures2.pcx 287 457 01 32 18 -1 -15 // 044B y, back crane 5
1035 images/newfixtures2.pcx 287 457 01 32 28 -5 -17 // 044C y, back crane 6 to 8 (7 - centre)
1036 images/newfixtures2.pcx 289 457 01 32 26 -7 -19 // 044D y, back crane 9
1037 images/newfixtures2.pcx 293 457 01 32 22 -7 -21 // 044E y, back crane 10
1038 images/newfixtures2.pcx 297 457 01 32 18 -7 -23 // 044F y, back crane 11
1039 images/newfixtures2.pcx 301 457 01 32 14 -7 -25 // 0450 y, back crane 12
1040 images/newfixtures2.pcx 305 457 01 32 10 -7 -27 // 0451 y, back crane 13

1041 images/newfixtures2.pcx 318 457 01 43 2 15 -18 // 0452 y, front crane 1
1042 images/newfixtures2.pcx 318 457 01 43 6 11 -20 // 0453 y, front crane 2
1043 images/newfixtures2.pcx 318 457 01 43 10 7 -22 // 0454 y, front crane 3
1044 images/newfixtures2.pcx 318 457 01 43 14 3 -24 // 0455 y, front crane 4
1045 images/newfixtures2.pcx 318 457 01 43 18 -1 -26 // 0456 y, front crane 5
1046 images/newfixtures2.pcx 318 457 01 43 44 -5 -28 // 0457 y, front crane 6 to 8 (7 - centre)
1047 images/newfixtures2.pcx 320 457 01 43 42 -7 -30 // 0458 y, front crane 9
1048 images/newfixtures2.pcx 324 457 01 43 38 -7 -32 // 0459 y, front crane 10
1049 images/newfixtures2.pcx 328 457 01 43 34 -7 -34 // 045A y, front crane 11
1050 images/newfixtures2.pcx 332 457 01 43 30 -7 -36 // 045B y, front crane 12
1051 images/newfixtures2.pcx 336 457 01 43 26 -7 -38 // 045C y, front crane 13

1052 * 7	 02 04 CC // ID
00 01
\w0
// 'Global' procedures
// - BF: Get offset for desert/snow non-track ground sprites
// - BE: Get offset for desert/snow track ground sprites
// - BD: Get rail/monorail/maglev ground sprites

// - BC: Open/close train entry doors
// - BB: Show/hide snow on roofs
// - BA: Get offset for road crossing overlay
// - B9: Get offset for road crossing overlay - purchase list
// - B8: Get offset for tower crane animation

// - B7: Show/hide NW fence
// - B6: Show/hide NE fence
// - B5: Show/hide SE fence
// - B4: Show/hide SW fence

// - B3: Check if there is a parking tile to the south

// Procedure to get offset for desert/snow non-track ground sprites
1053 * 18	 02 04 BF // ID
81 42 // terrain and track type
00 FF
02
\wx8239 01 01 // if desert: 11C6 - 0F8D = 239
\wx8239 04 04 // if snow
\wx8000 // else

// Procedure to get offset for desert/snow track ground sprites
1054 * 18	 02 04 BE // ID
81 42 // terrain and track type
00 FF
02
\wx801A 01 01 // if desert: 040E - 03F4 = 1A
\wx801A 04 04 // if snow
\wx8000 // else

// Procedure to get offset for rail/monorail/maglev ground sprites
1055 * 15	 02 04 01 // ID
81 7F 19 // read parameter 19
00 FF
01
\wx8000 01 01 // monorail has been replaced
\wx8052 // monorail offset 82

1056 * 15	 02 04 02 // ID
81 7F 1A // read parameter 1A
00 FF
01
\wx8000 01 01 // maglev has been replaced
\wx80A4 // maglev offset 164

1057 * 18	 02 04 BD // ID
81 42 // terrain and track type
08 FF
02
\wx0001 02 02 // if monorail
\wx0002 03 03 // if maglev
\wx8000 // else

// Procedure to open/close train entry doors
// Used by train sheds, goods station A and valuables sheds/station
// Test tile to south for buffer
1058 * 24	 02 04 02 // ID
85 68 01 // station info: check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
02
\wx8000 1C 05 1C 05 // tile is buffer - door open
\wx8000 1D 05 1D 05 // tile is buffer - door open
\wx8001 // else - door closed

1059 * 14	 02 04 01 // ID
81 45 // rail continuation info
00 01 // use bit 0 - rail to south
01
\wx8000 01 01 // there is a connecting rail - door open
\wx0002 // else

1060 * 14	 02 04 BC // ID
81 44 // PBS status
01 01 // use bit 1
01
\wx0001 01 01 // station is reserved or PBS is off
\wx8001 // else - door closed

// Procedure to show/hide snow on roofs
1061 * 14	 02 04 BB // ID
81
42 // terrain and track type
00 FF
01
\wx8001 04 04 // show snow
\wx8000 // no snow

// Procedure to get offset for road crossing overlay
// For monorail check if sprites have been replaced by old type rail grf
1062 * 15	 02 04 06 // ID
81 7F 14 // read parameter 14
00 FF
01
\wx8002 02 02 // monorail
\wx8000 // normal rail

// For maglev check if sprites have been replaced by old type rail grf
1063 * 15	 02 04 07 // ID
81 7F 15 // read parameter 15
00 FF
01
\wx8004 03 03 // maglev
\wx8000 // normal rail

// Test for track type
1064 * 18	 02 04 05 // ID
81 42 // terrain and track type
08 FF
02
\wx0006 02 02 // monorail
\wx0007 03 03 // maglev
\wx8000 // normal rail

// Show monorail overlay for fine scale railtypes grf (pb_trax, xUSSR)
1065 * 15	 02 04 BA // ID
81 7F 16 // read parameter 16
00 FF
01
\wx8002 01 01 // fine scale rail set loaded - monorail
\wx0005

// Procedure to get offset for road crossing overlay - purchase list
// We can't test for rail type in the purchase window so use the
// maglev overlay as it is the only one that looks reasonable with all rail types.
// Note, OpenTTD feature request FS#2091.
// Show monorail overlay for fine scale railtypes grf (pb_trax, xUSSR)
1066 * 15	 02 04 B9 // ID
81 7F 16 // read parameter 16
00 FF
01
\wx8002 01 01 // fine scale rail set loaded - monorail
\wx8004 // maglev

// Procedure to get sprite offset for tower crane animation
// Calculate frame for reverse movement
1067 * 14	 02 04 02 // ID
81 1A // all bits on
20 \b16 // last frame (19) - 3 static frames
\2-
4A // animation frame
00 FF
00 // return {16 - frame}
\wx8000

// Set frame for forward movement
1068 * 10	 02 04 01 // ID
81 4A // animation frame
00 FF
00 // return frame
\wx8000

// Select movement direction
1069 * 22	 02 04 B8 // ID
81 4A // animation frame
00 FF
03
\wx0001 \b0 \b6 // frames 0 to 6
\wx8006 \b7 \b9 // frames 7 to 9 (last position)
\wx0002 \b10 \b16 // frames 10 to 16
\wx8000 // frames 17 to 19 (first position)

// Procedures to show/hide fences
// Check tile to NW (for x orientation)
1070 * 18	 02 04 B7 // ID
85 68 F0 // station info: check tile on adjacent platform to N
08 \wx0007 // mask 3 bits for defined by GRF and current station
01
\wx8000 \wx0004 \wx0006 // tile is part of this station
\wx8001 // not this station - show fence

// Check tile to NE (for x orientation)
1071 * 18	 02 04 B6 // ID
85 68 0F // station info: check tile along platform to N
08 \wx0007 // mask 3 bits for defined by GRF and current station
01
\wx8000 \wx0004 \wx0006 // tile is part of this station
\wx8001 // not this station - show fence

// Check tile to SE (for x orientation)
1072 * 18	 02 04 B5 // ID
85 68 10 // station info: check tile on adjacent platform to S
08 \wx0007 // mask 3 bits for defined by GRF and current station
01
\wx8000 \wx0004 \wx0006 // tile is part of this station
\wx8001 // not this station - show fence

// Check tile to SW (for x orientation)
1073 * 18	 02 04 B4 // ID
85 68 01 // station info: check tile along platform to S
08 \wx0007 // mask 3 bits for defined by GRF and current station
01
\wx8000 \wx0004 \wx0006 // tile is part of this station
\wx8001 // not this station - show fence

// Procedure to check if there is a parking tile to the south
// Used to hide windows and doors on freight station buildings
1074 * 18	 02 04 B3 // ID
85 68 10 // station info: check tile on adjacent platform to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8000 81 05 81 05 // hide windows and doors
\wx8001 // show windows and doors

// Pre-built stations
1075 * 4	 01 04 01 02
// Purchase list
1076 images/purchaseicons.pcx 19 81 09 62 64 -31 -31 // 042D x
1077 images/purchaseicons.pcx 91 81 09 62 64 -31 -31 // 042E y

1078 * 7	 02 04
00 // ID
00 01
\w0

1079 * 696	 00 04 04 01 00
08 "ISRA"

// Sprite layout (advanced)
1A 12
// 00 (x) - empty
41
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10

// 01 (y) - empty
41
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10

// 02 (x) - hay
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008431 \wx0000 // hay
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent

// 03 (y) - hay
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008432 \wx0000 // hay
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent

// 04 (x) - tractor
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008433 \wx0002 // tractor
08 00 00 // x/y/z offset
07 04 09 // x/y/z extent
07 // register

// 05 (y) - tractor
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008434 \wx0002 // tractor
00 08 00 // x/y/z offset
04 07 09 // x/y/z extent
07 // register

// 06 (x) - new barn
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000448 \wx0001 // building N
00 00 00 // x/y/z offset
10 05 0B // x/y/z extent
06 // register
\dx80000456 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register
\dx80000447 \wx0001 // building S
00 0B 00 // x/y/z offset
10 05 0B // x/y/z extent
05 // register
\dx80000455 \wx0001 // snow
00 01 80 // x/y/z offset
03 // register

// 07 (y) - new barn
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000044A \wx0001 // building N
00 00 00 // x/y/z offset
05 10 0B // x/y/z extent
06 // register
\dx80000458 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register
\dx80000449 \wx0001 // building S
0B 00 00 // x/y/z offset
05 10 0B // x/y/z extent
05 // register
\dx80000457 \wx0001 // snow
01 01 80 // x/y/z offset
03 // register

// 08 (x) - old barn front
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0001 // building
00 00 00 // x/y/z offset
10 05 18 // x/y/z extent
06 // register
\dx80000459 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 09 (y) - old barn front
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0001 // building
00 00 00 // x/y/z offset
05 10 18 // x/y/z extent
06 // register
\dx8000045A \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 0A (x) - tractor shed
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008439 \wx0002 // shed
00 00 00 // x/y/z offset
10 05 0D // x/y/z extent
06 // register
\dx80000453 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 0B (y) - tractor shed
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843A \wx0002 // shed
00 00 00 // x/y/z offset
05 10 0D // x/y/z extent
06 // register
\dx80000454 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 0C (x) - long farm bulding
44
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043D \wx0002 // building
00 00 00 // x/y/z offset
10 04 28 // x/y/z extent
06 // register
\dx8000045B \wx0003 // snow
00 00 80 // x/y/z offset
03 08 // registers
\dx80000445 \wx0001 // gantry
0D 05 00 // x/y/z offset
04 0B 16 // x/y/z extent
07 // register

// 0D (y) - long farm bulding
44
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043E \wx0002 // building
00 00 00 // x/y/z offset
04 10 28 // x/y/z extent
06 // register
\dx8000045C \wx0003 // snow
00 00 80 // x/y/z offset
03 08 // registers
\dx80000446 \wx0001 // gantry
05 0D 00 // x/y/z offset
0B 04 16 // x/y/z extent
07 // register

// 0E (x) - grain tanks/silo
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0002 // grain tank
00 00 00 // x/y/z offset
10 05 36 // x/y/z extent
06 // register
\dx80000451 \wx0001 // silo snow
02 00 80 // x/y/z offset
03 // register

// 0F (y) - grain tanks/silo
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008430 \wx0002 // grain tank
00 00 00 // x/y/z offset
05 10 36 // x/y/z extent
06 // register
\dx80000452 \wx0001 // silo snow
02 00 80 // x/y/z offset
03 // register

// 10 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 11 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

// Real Sprites

// Test variable 10 for real sprites
1080 * 14	 02 04 3B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E7 // farm sprites

// Grain tanks
// Test tile to south
1081 * 18	 02 04 20 // ID
85 68 01 // station info param 0/1; check tile to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx801C 00 05 00 05 // part 00/01 - N tank
\wx8000 // single tile - use silo

// Test 2 tiles to north
1082 * 18	 02 04 21 // ID
85 68 0E // station info param 0/-2; check tile to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8020 00 05 00 05 // part 00/01 - S tanks
\wx801E // 2nd tank

// Test tile to north
1083 * 18	 02 04 22 // ID
85 68 0F // station info param 0/-1; check tile to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0021 00 05 00 05 // part 00/01
\wx0020

// Tractor - sprite offset
1084 * 15	 02 04 1C // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx8000
\wx8002
\wx8004
\wx8000

// Buildings
// Tractor shelter - sprite offset
1085 * 11	 02 04 1B // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8002

// Long building
1086 * 11	 02 04 05 // ID
80
00 // don't re-randomise
00 // use bit 0
02
\wx8002
\wx8006

1087 * 11	 02 04 06 // ID
80
00 // don't re-randomise
01 // use bit 1
02
\wx8002
\wx8006

1088 * 11	 02 04 07 // ID
80
00 // don't re-randomise
02 // use bit 2
02
\wx8002
\wx8006

1089 * 11	 02 04 08 // ID
80
00 // don't re-randomise
03 // use bit 3
02
\wx8002
\wx8006

// Long building S
1090 * 22	 02 04 1D // ID
81 41 // platform info and relative position
08 03 // platform number from N mod 4
03
\wx0005 00 00
\wx0006 01 01
\wx0007 02 02
\wx0008

1091 * 11	 02 04 05 // ID
80
00 // don't re-randomise
00 // use bit 0
02
\wx8000
\wx8004

1092 * 11	 02 04 06 // ID
80
00 // don't re-randomise
01 // use bit 1
02
\wx8000
\wx8004

1093 * 11	 02 04 07 // ID
80
00 // don't re-randomise
02 // use bit 2
02
\wx8000
\wx8004

1094 * 11	 02 04 08 // ID
80
00 // don't re-randomise
03 // use bit 3
02
\wx8000
\wx8004

// Long building N
1095 * 22	 02 04 1E // ID
81 41 // platform info and relative position
08 03 // platform number from N mod 4
03
\wx0005 00 00
\wx0006 01 01
\wx0007 02 02
\wx0008

// Long building - test tile to north along platform
1096 * 18	 02 04 43 // ID
85 68 0F // station info param 0/-1; check tile to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx001D 00 15 00 15 // part 02/03 - long building S end
\wx001E // long building N end

1097 * 11	 02 04 05 // ID
80
00 // don't re-randomise
00 // use bit 0
02
\wx8001
\wx8000

1098 * 11	 02 04 06 // ID
80
00 // don't re-randomise
01 // use bit 1
02
\wx8001
\wx8000

1099 * 11	 02 04 07 // ID
80
00 // don't re-randomise
02 // use bit 2
02
\wx8001
\wx8000

1100 * 11	 02 04 08 // ID
80
00 // don't re-randomise
03 // use bit 3
02
\wx8001
\wx8000

// Long building - gantry visibility
1101 * 22	 02 04 41 // ID
81 41 // platform info and relative position
08 03 // platform number from N mod 4
03
\wx0005 00 00
\wx0006 01 01
\wx0007 02 02
\wx0008

// Long building - test tile to south along platform
1102 * 18	 02 04 42 // ID
85 68 01 // station info param 0/+1; check tile to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0041 00 15 00 15 // part 02/03 - long building N end
\wx8000 // long building S end - no gantry

// Wide building - visibility N part
1103 * 18	 02 04 45 // ID
85 68 F0 // station info param -1/0; check tile on next platfrom N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8001 00 15 00 15 // part 02/03 - wide barn
\wx8000

// Wide building - visibility S part
1104 * 18	 02 04 46 // ID
85 68 10 // station info param 1/0; check tile on next platfrom S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8001 00 15 00 15 // part 02/03 - wide barn
\wx8000

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

// Grain tanks
1105 * 56	 02 04 35 // ID
85
7E 22 // get tank sprite offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2ucmp 1A
20 \wx0000 // if offset is 0 it's a silo - show snow
\2&
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx003B \w0 \w0
\wx003B

// Long building
1106 * 72	 02 04 36 // ID
85
7E 43 // get building sprite offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2& 1A
20 \wx0002 // snow offset only uses bit 1 (N or S)
\2sto 1A
20 \wx0008 // store in register - snow offset
\2rst
7E 42 // get gantry visibility
20 \wx00FF
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx003B \w0 \w0
\wx003B

// Wide barn
1107 * 62	 02 04 39 // ID
85
7E 46 // get S building visibility
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E 45 // get N building visibility
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx003B \w0 \w0
\wx003B

// Tractor shed
1108 * 51	 02 04 3A // ID
85
7E 1B // get random offset for tractor sheds
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx003B \w0 \w0
\wx003B

// Tractors
1109 * 40	 02 04 37 // ID
85
7E 1C // get random offset for tractors
20 \wx00FF
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx003B \w0 \w0
\wx003B

// Hay
1110 * 29	 02 04 38 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx003B \w0 \w0
\wx003B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Test tile on next platform to south
1111 * 18	 02 04 27 // ID
85 68 10 // station info param +1/0; check tile on next platfrom S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0039 00 15 00 15 // part 02/03 - wide barn
\wx003A // use single tile building

// Test tile on next platform to north
1112 * 18	 02 04 26 // ID
85 68 F0 // station info param -1/0; check tile on next platfrom N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0039 00 15 00 15 // part 02/03 - wide barn
\wx0027

// Long building - test tile to south along platform
1113 * 18	 02 04 18 // ID
85 68 01 // station info param 0/+1; check tile to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0036 00 15 00 15 // part 02/03 - long building
\wx0026

// Test tile to north along platform
1114 * 18	 02 04 19 // ID
85 68 0F // station info param 0/-1; check tile to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0036 00 15 00 15 // part 02/03 - long building
\wx0018

// Test tile at current posn.
1115 * 23	 02 04 1A // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0035 01 01 // part 00/01 - grain tanks/silo
\wx0019 05 05 // part 02/03 - building
\wx0037 09 09 // part 04/05 - tractor/empty
\wx0038 // part 06/07 - hay

// Callback 14

// Tractor or empty - sprite layout
1116 * 11	 02 04 40 // ID
80
00 // don't re-randomise
12 // use bit 18
02
\wx8000
\wx8004

// Wide building front S - sprite layout
1117 * 17	 02 04 2A // ID
85 FA // date station was built
00 \wxFFFF
01
\wx8008 \w0 \w01/01/1970 // old barn
\wx8006 // new barn

// Wide building back N - sprite layout
1118 * 17	 02 04 2B // ID
85 FA // date station was built
00 \wxFFFF
01
\wx8000 \w0 \w01/01/1970 // old barn (empty tile)
\wx8006 // new barn

// Wide building - test tile on next platform to north
1119 * 18	 02 04 44 // ID
85 68 F0 // station info param -1/0; check tile on next platfrom N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx002A 00 15 00 15 // part 02/03 - wide barn S part
\wx002B // wide barn N part

// Test tile on next platform to south
1120 * 18	 02 04 2F // ID
85 68 10 // station info param +1/0; check tile on next platfrom S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0044 00 15 00 15 // part 02/03 - wide barn
\wx800A // use single tile building

// Test tile on next platform to north
1121 * 18	 02 04 2E // ID
85 68 F0 // station info param -1/0; check tile on next platfrom N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0044 00 15 00 15 // part 02/03 - wide barn
\wx002F

// Long building - test tile to south along platform
1122 * 18	 02 04 2D // ID
85 68 01 // station info param 0/+1; check tile to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx800C 00 15 00 15 // part 02/03 - long building
\wx002E

// Test tile to north along platform
1123 * 18	 02 04 2C // ID
85 68 0F // station info param 0/-1; check tile to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx800C 00 15 00 15 // part 02/03 - long building
\wx002D

// Test tile at current posn.
1124 * 23	 02 04 29 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx800E 01 01 // part 00/01 - grain tanks/silo
\wx002C 05 05 // part 02/03 - building
\wx0040 09 09 // part 04/05 - tractor/empty
\wx8002 // part 06/07 - hay

// Callback 24

// Platform 0 - 1 platform wide
1125 * 26	 02 04 0D // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
04
\wx8000 00 02 // silo
\wx8002 04 04 // building
\wx8006 05 06 // hay
\wx8000 07 07 // silo
\wx8004 // tractor/empty

// Platform 0
1126 * 30	 02 04 05 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
05
\wx8000 00 02 // silo
\wx8002 03 03 // building
\wx8002 05 05 // building (to align with platform 1 for wide building)
\wx8006 06 06 // hay
\wx8000 07 07 // silo
\wx8004 // tractor/empty

// Platform 0
1127 * 14	 02 04 0C // ID
81 10 // platform info and relative position
14 0F // number of platforms
01
\wx000D 01 01 // 1 platform wide
\wx0005 // else

// Platform 1
1128 * 26	 02 04 06 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
04
\wx8002 01 02 // building
\wx8006 03 04 // hay
\wx8002 05 05 // building (to align with platform 0 for wide building)
\wx8006 07 07 // hay
\wx8004 // tractor/empty

// Platform 2
1129 * 30	 02 04 07 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
05
\wx8002 00 00 // building (to align with platform 3 for wide building)
\wx8006 02 02 // hay
\wx8002 04 04 // building
\wx8006 05 05 // hay
\wx8000 06 07 // silo
\wx8004 // tractor/empty

// Platform 3
1130 * 26	 02 04 08 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
04
\wx8002 00 00 // building (to align with platform 2 for wide building)
\wx8006 01 01 // hay
\wx8002 02 03 // building
\wx8000 05 07 // silo
\wx8004 // tractor/empty

// Platform 4
1131 * 26	 02 04 0A // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
04
\wx8000 00 01 // silo
\wx8006 03 05 // hay
\wx8002 06 06 // building
\wx8000 07 07 // silo
\wx8004 // tractor/empty

1132 * 28	 02 04 09 // ID
81 10 // platform info and relative position
88 0F 00 05 // platform number from N mod 5
04
\wx000C 00 00
\wx0006 01 01
\wx0007 02 02
\wx0008 03 03
\wx000A

1133 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx0029 14 14 // sprite layout
\wx001A // real sprites

// For purchase list
1134 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx8010 14 14 // sprite layout
\wx0009 24 24 // station layout
\wx0000 // real sprites

1135 * 10	 03 04
01 00
01
FF \wx0003 // purchase
\wx0002
// Purchase list
1136 * 4	 01 04 01 02
1137 images/purchaseicons.pcx 19 597 09 62 64 -31 -31 // 042D x
1138 images/purchaseicons.pcx 91 597 09 62 64 -31 -31 // 042E y

1139 * 7	 02 04 00 // ID
00 01
\w0

1140 * 364	 00 04 06 01 01
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) Pig yard
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0002 // back platform
00 00 00 // x/y/z offset
10 05 07 // x/y/z extent
06 // register
\dx8000042E \wx0002 // front platform
00 0B 00 // x/y/z offset
10 05 07 // x/y/z extent
06 // register

// 01 (y) Pig yard
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042F \wx0002 // back platform
00 00 00 // x/y/z offset
05 10 07 // x/y/z extent
06 // register
\dx80000430 \wx0002 // front platform
0B 00 00 // x/y/z offset
05 10 07 // x/y/z extent
06 // register

// 02 (x) Cattle docks
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0002 // back platform
00 00 00 // x/y/z offset
10 05 07 // x/y/z extent
06 // register
\dx8000042D \wx0002 // front platform
00 0B 00 // x/y/z offset
10 05 07 // x/y/z extent
07 // register

// 03 (y) Cattle docks
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0002 // back platform
00 00 00 // x/y/z offset
05 10 07 // x/y/z extent
06 // register
\dx8000042E \wx0002 // front platform
0B 00 00 // x/y/z offset
05 10 07 // x/y/z extent
07 // register

// 04 (x) Office
44
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843B \wx0002 // back platform office
00 00 00 // x/y/z offset
10 05 11 // x/y/z extent
08 // register
\dx8000044D \wx0003 // office snow
00 00 80 // x/y/z offset
03 08 // registers
\dx8000842F \wx0000 // front platform fence
03 0D 00 // x/y/z offset
0A 01 05 // x/y/z extent

// 05 (y) Office
44
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843C \wx0002 // back platform office
00 00 00 // x/y/z offset
05 10 11 // x/y/z extent
08 // register
\dx8000044E \wx0003 // office snow
00 00 80 // x/y/z offset
03 08 // registers
\dx80008430 \wx0000 // front platform fence
0D 03 00 // x/y/z offset
01 0A 05 // x/y/z extent

// 06 (x) Empty platform
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // low platform overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008431 \wx0001 // hay
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent
03 // register

// 07 (y) Empty platform
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // low platform overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008432 \wx0001 // hay
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent
03 // register

// 08 (x) Purchase
41
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) Purchase
41
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

10 \w400 // little / lots threshold

11 FF // pylon placement (all)

12 \dx00000010 // cargo types for randomisation triggers

// Real sprites

// Test variable 10 for real sprites
1141 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E7 // forklift sprites

1142 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00EE // building sprites

// Pig yard
// Test tile along platform to south for pig yard
1143 * 18	 02 04 30 // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx800C 01 15 01 15 // part 02/03 - pig yard
\wx8008 // south end

// Test tile along platform to south for pig yard
1144 * 18	 02 04 31 // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8004 01 15 01 15 // part 02/03 - pig yard
\wx8000 // single tile

// Test tile along platform to north for pig yard
1145 * 18	 02 04 32 // ID
85 68 0F // station info param 0/-1; check tile along platform to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0030 01 15 01 15 // part 02/03 - pig yard
\wx0031

// Cattle docks
// Test tile along platform to south for cattle docks
1146 * 18	 02 04 2B // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8000 01 05 01 05 // part 00/01 - cattle docks
\wx8002 // south end

// Test tile along platform to north for cattle docks
1147 * 18	 02 04 2D // ID
85 68 0F // station info param 0/-1; check tile along platform to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8008 01 05 01 05 // part 00/01 - cattle docks
\wx8000 // north end

// Test tile on platform to north for cattle docks
1148 * 18	 02 04 29 // ID
85 68 F0 // station info param -1/0; check tile on next platform to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8004 01 05 01 05 // part 00/01 - cattle docks
\wx8000

// Front platform
// Test tile on platform to south for cattle docks
1149 * 18	 02 04 2A // ID
85 68 10 // station info param 1/0; check tile on next platform to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8000 01 05 01 05 // part 00/01 - cattle docks
\wx002B

// Random platform objects
1150 * 15	 02 04 34 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx8000
\wx8000
\wx8000
\wx8001

// Random office variety
1151 * 11	 02 04 35 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8002

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

// Pig yard sprites
1152 * 23	 02 04 15 // ID
85
7E 32 // get sprite offset
20 \wx00FF
\2sto 1A
00 \wx0006 // store in register
01
\wx00D8 \w0 \w0
\wx00D8

// Pig yard sprites - empty
1153 * 23	 02 04 19 // ID
85
7E 32 // get sprite offset
20 \wx00FF
\2sto 1A
00 \wx0006 // store in register
01
\wx00D7 \w0 \w0
\wx00D7

// Cattle docks sprites
1154 * 52	 02 04 16 // ID
85
7E 2B // get S end sprite offset
20 \wx00FF
\2+
7E 2D // get N end sprite offset
20 \wx00FF
\2+
7E 29 // get platform to N sprite offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 2A // get tile type sprite offset
20 \wx00FF
\2+
7E 2D // get N end sprite offset
20 \wx00FF
\2sto 1A
00 \wx0007 // store in register
01
\wx00D6 \w0 \w0
\wx00D6

// Cattle docks sprites - empty
1155 * 52	 02 04 1A // ID
85
7E 2B // get S end sprite offset
20 \wx00FF
\2+
7E 2D // get N end sprite offset
20 \wx00FF
\2+
7E 29 // get platform to N sprite offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 2A // get tile type sprite offset
20 \wx00FF
\2+
7E 2D // get N end sprite offset
20 \wx00FF
\2sto 1A
00 \wx0007 // store in register
01
\wx00D5 \w0 \w0
\wx00D5

// Office sprites
1156 * 51	 02 04 17 // ID
85
7E 35 // get random office variety offset
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001C \w0 \w0
\wx001C

// Platform sprites
1157 * 40	 02 04 18 // ID
85
7E 34 // get show/hide flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Test tile at current posn.
1158 * 23	 02 04 2A // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0016 01 01 // part 00/01 - cattle docks
\wx0015 05 05 // part 02/03 - pig yard
\wx0017 09 09 // part 04/05 - building
\wx0018 // part 06/07 - platform

// Empty
// Test tile at current posn.
1159 * 23	 02 04 29 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx001A 01 01 // part 00/01 - cattle docks
\wx0019 05 05 // part 02/03 - pig yard
\wx0017 09 09 // part 04/05 - building
\wx0018 // part 06/07 - platform

// Callback 14

// Test tile at current posn. for sprite layout
1160 * 23	 02 04 10 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx8002 01 01 // part 00/01 - cattle docks
\wx8000 05 05 // part 02/03 - pig yard
\wx8004 09 09 // part 04/05 - building
\wx8006 // part 06/07 - platform

// Callback 24

// Platform 0
1161 * 26	 02 04 01 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
04
\wx8002 00 01 // pig yard
\wx8004 02 02 // building
\wx8006 03 03 // platform
\wx8006 07 07 // platform
\wx8000 // cattle docks

// Platform 1
1162 * 22	 02 04 02 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8002 00 02 // pig yard
\wx8006 03 03 // platform
\wx8006 06 07 // platform
\wx8000 // cattle docks

// Platform 2
1163 * 22	 02 04 03 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8000 01 03 // cattle docks
\wx8004 04 04 // building
\wx8000 06 07 // cattle docks
\wx8006 // platform

// Platform 3
1164 * 18	 02 04 04 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
02
\wx8002 00 02 // pig yard
\wx8002 05 07 // pig yard
\wx8006 // platform

1165 * 22	 02 04 05 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
03
\wx0001 00 00
\wx0002 01 01
\wx0003 02 02
\wx0004

1166 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx0010 14 14 // sprite layout
\wx002A // real sprites

// Purchase list
1167 * 18	 02 04 08 // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout
\wx0005 24 24 // station layout
\wx0000 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
1168 * 15	 02 04 09 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19 (16 and 17 are used by buildings etc)
04
\wx0029
\wx0029
\wx0029
\wx0029

//@@WARNING ENABLE 113

// No suitable cargo
1169 * 14	 02 04 07 // ID
81 0C // callback
00 FF
01
\wx0010 14 14 // sprite layout
\wx0009 // real sprites

1170 * 13	 03 04
01 01
02
04 \wx0006 // livestock
FF \wx0008 // purchase
\wx0007 // no suitable cargo
1171 * 268	 00 04 04 01 02
08 "ISRA"

// Sprite layout
1A 06
// 00 (x) - back
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0002 // silo back
00 0B 00 // x/y/z offset
10 05 32 // x/y/z extent
05 // register
\dx80000437 \wx0003 // silo back snow
00 00 80 // x/y/z offset
02 05 // registers

// 01 (y) - back
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008432 \wx0002 // silo back
0B 00 00 // x/y/z offset
05 10 32 // x/y/z extent
05 // register
\dx8000043C \wx0003 // silo back snow
00 00 80 // x/y/z offset
02 05 // registers

// 02 (x) - front
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842E \wx0002 // silo front
00 00 00 // x/y/z offset
10 05 32 // x/y/z extent
05 // register
\dx80000438 \wx0003 // silo front snow
00 00 80 // x/y/z offset
02 05 // registers
\dx80000431 \wx0001 // bay
00 0B 00 // x/y/z offset
10 05 22 // x/y/z extent
03 // register
\dx8000043B \wx0001 // bay snow
00 16 80 // x/y/z offset
02 // registers

// 03 (y) - front
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008433 \wx0002 // silo front
00 00 00 // x/y/z offset
05 10 32 // x/y/z extent
05 // register
\dx8000043D \wx0003 // silo front snow
00 00 80 // x/y/z offset
02 05 // registers
\dx80000436 \wx0001 // bay
0B 00 00 // x/y/z offset
05 10 22 // x/y/z extent
03 // register
\dx80000440 \wx0001 // bay snow
00 16 80 // x/y/z offset
02 // registers

// 04 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 05 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout
11 FF // pylon placement (all)

1172 * 4	 01 04 01 14
1173 images/newfarm2.pcx 5 462 09 61 33 -29 -41 // 042D x, silo back south end
1174 images/newfarm2.pcx 44 462 09 68 41 -31 -48 // 042E x, silo front south end
1175 images/newfarm2.pcx 91 462 09 59 34 -28 -42 // 042F x, silo back
1176 images/newfarm2.pcx 131 462 09 67 42 -32 -48 // 0430 x, silo front
1177 images/newfarm2.pcx 180 462 09 54 27 -27 -46 // 0431 x, loading bay

1178 images/newfarm2.pcx 5 544 09 61 33 -2 -41 // 0432 y, silo back south end
1179 images/newfarm2.pcx 44 544 09 68 41 -8 -48 // 0433 y, silo front south end
1180 images/newfarm2.pcx 91 544 09 59 34 -4 -42 // 0434 y, silo back
1181 images/newfarm2.pcx 131 544 09 67 42 -8 -48 // 0435 y, silo front
1182 images/newfarm2.pcx 180 544 09 54 27 2 -46 // 0436 y, loading bay

1183 images/newfarm2.pcx 5 618 01 12 33 0 0 // 0437 x, silo back south end snow
1184 images/newfarm2.pcx 44 618 01 19 41 0 0 // 0438 x, silo front south end snow
1185 images/newfarm2.pcx 91 618 01 19 34 0 0 // 0439 x, silo back snow
1186 images/newfarm2.pcx 131 618 01 27 42 0 0 // 043A x, silo front snow
1187 images/newfarm2.pcx 179 618 01 19 27 0 0 // 043B x, loading bay snow

1188 images/newfarm2.pcx 5 650 01 12 33 0 0 // 043C y, silo back south end snow
1189 images/newfarm2.pcx 44 650 01 19 41 0 0 // 043D y, silo front south end snow
1190 images/newfarm2.pcx 91 650 01 19 34 0 0 // 043E y, silo back snow
1191 images/newfarm2.pcx 131 650 01 27 42 0 0 // 043F y, silo front snow
1192 images/newfarm2.pcx 179 650 01 19 27 0 0 // 0440 y, loading bay snow

1193 * 7	 02 04 00 // ID
00 01
\w0

1194 * 4	 01 04 01 02
// Purchase list
1195 images/purchaseicons.pcx 163 151 09 62 64 -31 -31 // 042D x
1196 images/purchaseicons.pcx 235 151 09 62 64 -31 -31 // 042E y

1197 * 7	 02 04 07 // ID
00 01
\w0

// Real sprites

// Test variable 10 for real sprites
1198 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx0000 // building sprites

1199 * 15	 02 04 10 // ID
80
00 // don't re-randomise
10 // use bit 16
04
\wx8001
\wx8000
\wx8000
\wx8000

// For platform length 4 and greater
1200 * 14	 02 04 16 // ID
81 47 // platform info and relative position
00 0F // position along platform from centre
01
\wx8001 0F 0F // 1 tile north of centre
\wx0010

// For platform length 3
1201 * 14	 02 04 17 // ID
81 41 // platform info and relative position
00 0F // position along platform from north
01
\wx8001 01 01 // 2nd tile from north
\wx0010

// Determine build of loading bay
1202 * 18	 02 04 19 // ID
81 41 // platform info and relative position
10 0F // platform length
02
\wx8001 02 02 // length of 2
\wx0017 03 03 // length of 3
\wx0016 // length > 3

// No loading bay on south tile
1203 * 14	 02 04 18 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx8000 00 00 // south tile
\wx0019

// Sprite offset for buildings
1204 * 14	 02 04 03 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx8000 00 00 // south tile
\wx8002

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

1205 * 62	 02 04 15 // ID
85
7E 03 // get sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - layout sprite offset
\2rst
7E 18 // get random bays
20 \wx7FFF
\2sto 1A
20 \wx0003 // store in register - show/hide bay
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 14

1206 * 14	 02 04 11 // ID
81 41 // platform info and relative position
0C 01 // platform number from south mod 2
01
\wx8002 00 00 // even number platform
\wx8000

1207 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx0011 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
1208 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8004 14 14 // sprite layout
\wx0007 // real sprites

1209 * 10	 03 04
01 02
01
FF \wx0006 // purchase
\wx0005
1210 * 4	 01 04 01 12
1211 images/newmines7.pcx 7 201 01 71 36 -31 -51 // 042D x, silo
1212 images/newmines7.pcx 54 201 01 40 36 -27 -32 // 042E x, bridge (from silo)
1213 images/newmines7.pcx 191 201 01 72 38 -5 -52 // 042F y, silo
1214 images/newmines7.pcx 235 201 01 40 36 -6 -33 // 0430 y, bridge (from silo)
1215 images/newmines7.pcx 121 201 01 16 9 -7 -10 // 0431 x, pillar
1216 images/newmines7.pcx 140 201 01 44 42 -33 -36 // 0432 x, bridge (continuation)
1217 images/newmines7.pcx 284 201 01 16 9 1 -11 // 0433 y, pillar
1218 images/newmines7.pcx 322 201 01 44 42 -6 -37 // 0434 y, bridge (continuation)
1219 images/newmines7.pcx 369 201 01 29 40 -31 -10 // 0435 x, building
1220 images/newmines7.pcx 412 201 01 29 40 -7 -10 // 0436 y, building

1221 images/newmines7.pcx 7 153 01 42 36 0 0 // 0437 x, silo snow
1222 images/newmines7.pcx 47 153 01 20 36 0 0 // 0438 x, bridge (from silo) snow
1223 images/newmines7.pcx 138 153 01 43 38 0 0 // 0439 y, silo snow
1224 images/newmines7.pcx 179 153 01 20 36 0 0 // 043A y, bridge (from silo) snow
1225 images/newmines7.pcx 87 153 01 24 42 0 0 // 043B x, bridge (continuation) snow
1226 images/newmines7.pcx 218 153 01 24 42 0 0 // 043C y, bridge (continuation) snow
1227 images/newmines7.pcx 266 153 01 23 40 0 0 // 043D x, building snow
1228 images/newmines7.pcx 309 153 01 23 40 0 0 // 043E y, building snow

1229 * 7	 02 04 0D // ID
00 01
\w0

1230 * 4	 01 04 01 02
// Purchase list
1231 images/purchaseicons.pcx 163 81 09 62 64 -31 -31 // 042D x
1232 images/purchaseicons.pcx 235 81 09 62 64 -31 -31 // 042E y

1233 * 7	 02 04 00 // ID
00 01
\w0

1234 * 496	 00 04 06 01 03
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) - platforms with mineral piles
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0046 // back mineral pile
00 00 00 // x/y/z offset
10 05 0A // x/y/z extent
05 12 // registers
05 // value for variable 10
\dx8000842D \wx0046 // front mineral pile
00 0B 00 // x/y/z offset
10 05 0A // x/y/z extent
06 12 // registers
05 // value for variable 10

// 01 (y) - platforms with mineral piles
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0046 // back mineral pile
00 00 00 // x/y/z offset
05 10 0A // x/y/z extent
05 12 // registers
05 // value for variable 10
\dx8000842F \wx0046 // front mineral pile
0B 00 00 // x/y/z offset
05 10 0A // x/y/z extent
06 12 // registers
05 // value for variable 10

// 02 (x) - platforms with small building
44
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008435 \wx0000 // small building
00 00 00 // x/y/z offset
10 05 0C // x/y/z extent
\dx8000043D \wx0001 // small building snow
00 00 80 // x/y/z offset
03 // register
\dx8000842D \wx0046 // front mineral pile
00 0B 00 // x/y/z offset
10 05 0A // x/y/z extent
05 12 // registers
05 // value for variable 10

// 03 (y) - platforms with small building
44
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008436 \wx0000 // small building
00 00 00 // x/y/z offset
05 10 0C // x/y/z extent
\dx8000043E \wx0001 // small building snow
00 00 80 // x/y/z offset
03 // register
\dx8000842F \wx0046 // front mineral pile
0B 00 00 // x/y/z offset
05 10 0A // x/y/z extent
05 12 // registers
05 // value for variable 10

// 04 (x) - silo building
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // silo
00 00 00 // x/y/z offset
10 05 39 // x/y/z extent
\dx80000437 \wx0001 // silo snow
00 00 80 // x/y/z offset
03 // register
\dx8000042E \wx0000 // bridge
00 0B 00 // x/y/z offset
10 05 2C // x/y/z extent
\dx80000438 \wx0001 // bridge snow
00 00 80 // x/y/z offset
03 // register

// 05 (y) - silo building
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // silo
00 00 00 // x/y/z offset
05 10 39 // x/y/z extent
\dx80000439 \wx0001 // silo snow
00 00 80 // x/y/z offset
03 // register
\dx80000430 \wx0000 // bridge
0B 00 00 // x/y/z offset
05 10 2C // x/y/z extent
\dx8000043A \wx0001 // bridge snow
00 00 80 // x/y/z offset
03 // register

// 06 (x) - silo overhead bridge
44
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000431 \wx0000 // pillar
00 00 00 // x/y/z offset
06 05 10 // x/y/z extent
\dx80000432 \wx0000 // bridge
00 0B 00 // x/y/z offset
10 05 30 // x/y/z extent
\dx8000043B \wx0001 // bridge snow
00 00 80 // x/y/z offset
03 // register

// 07 (y) - silo overhead bridge
44
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000433 \wx0000 // pillar
00 00 00 // x/y/z offset
05 06 10 // x/y/z extent
\dx80000434 \wx0000 // bridge
0B 00 00 // x/y/z offset
05 10 30 // x/y/z extent
\dx8000043C \wx0001 // bridge snow
00 00 80 // x/y/z offset
03 // register

// 08 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

10 \w400 // little/lots threshold

11 FF // pylon placement (all)

12 \dx03C04102 // cargo types for randomisation triggers

// Real Sprites

// Test variable 10 for real sprites
1235 * 18	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FD 04 04 // ground overlay sprites
\wx00E6 05 05 // mineral pile sprites
\wx000D // building sprites

// Test variable 10 for real sprites - empty
1236 * 18	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FD 04 04 // ground overlay sprites
\wx00E5 05 05 // mineral pile sprites
\wx000D // building sprites

// Random offset for mineral pile variety - back
1237 * 11	 02 04 25 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bit 16
02
\wx8000
\wx8001

// Random offset for mineral pile variety - front
1238 * 11	 02 04 26 // ID
80
00 // no more cargo (triggered by random in graphics chain)
11 // use bit 17
02
\wx8000
\wx8001

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

// Coal
1239 * 78	 02 04 10 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w6 // add offset of recolour sprite for coal
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
7E 26 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Iron ore
1240 * 72	 02 04 11 // ID
85
1A // all bits on
20 \wx0000 // no recolour needed for iron ore
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
7E 26 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Copper ore
1241 * 78	 02 04 12 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w7 // add offset of recolour sprite for copper ore
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
7E 26 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Clay
1242 * 78	 02 04 13 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w8 // add offset of recolour sprite for clay
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
7E 26 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Gravel
1243 * 78	 02 04 14 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w9 // add offset of recolour sprite for gravel
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
7E 26 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Limestone
1244 * 78	 02 04 15 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w10 // add offset of recolour sprite for limestone
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
7E 26 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Sand
1245 * 78	 02 04 16 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w11 // add offset of recolour sprite for sand
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
7E 26 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Bauxite
1246 * 78	 02 04 17 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w12 // add offset of recolour sprite for bauxite
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
7E 26 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Nitrates
1247 * 78	 02 04 18 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w13 // add offset of recolour sprite for nitrates
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
7E 26 // get random layout
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
1248 * 60	 02 04 1E // ID
85
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2sto 1A
20 \wx0005 // store in register - variety offset
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

// Silo building/overhaed conveyor
1249 * 40	 02 04 20 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Test tile at current posn. - coal
1250 * 19	 02 04 40 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx0020 01 01 // part 00/01 - silo building
\wx0020 05 05 // part 02/03 - conveyor
\wx0010 // part 04/05 or 06/07 - platforms

// Test tile at current posn. - iron ore
1251 * 19	 02 04 41 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx0020 01 01 // part 00/01 - silo building
\wx0020 05 05 // part 02/03 - conveyor
\wx0011 // part 04/05 or 06/07 - platforms

// Test tile at current posn. - copper ore
1252 * 19	 02 04 42 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx0020 01 01 // part 00/01 - silo building
\wx0020 05 05 // part 02/03 - conveyor
\wx0012 // part 04/05 or 06/07 - platforms

// Test tile at current posn. - clay
1253 * 19	 02 04 43 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx0020 01 01 // part 00/01 - silo building
\wx0020 05 05 // part 02/03 - conveyor
\wx0013 // part 04/05 or 06/07 - platforms

// Test tile at current posn. - gravel
1254 * 19	 02 04 44 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx0020 01 01 // part 00/01 - silo building
\wx0020 05 05 // part 02/03 - conveyor
\wx0014 // part 04/05 or 06/07 - platforms

// Test tile at current posn. - limestone
1255 * 19	 02 04 45 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx0020 01 01 // part 00/01 - silo building
\wx0020 05 05 // part 02/03 - conveyor
\wx0015 // part 04/05 or 06/07 - platforms

// Test tile at current posn. - sand
1256 * 19	 02 04 46 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx0020 01 01 // part 00/01 - silo building
\wx0020 05 05 // part 02/03 - conveyor
\wx0016 // part 04/05 or 06/07 - platforms

// Test tile at current posn. - bauxite
1257 * 19	 02 04 47 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx0020 01 01 // part 00/01 - silo building
\wx0020 05 05 // part 02/03 - conveyor
\wx0017 // part 04/05 or 06/07 - platforms

// Test tile at current posn. - nitrates
1258 * 19	 02 04 48 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx0020 01 01 // part 00/01 - silo building
\wx0020 05 05 // part 02/03 - conveyor
\wx0018 // part 04/05 or 06/07 - platforms

// Test tile at current posn. - empty
1259 * 19	 02 04 4E // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx0020 01 01 // part 00/01 - silo building
\wx0020 05 05 // part 02/03 - conveyor
\wx001E // part 04/05 or 06/07 - platforms

// Callback 14

// Test tile at current posn.
1260 * 23	 02 04 0A // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx8004 01 01 // part 00/01 - silo building
\wx8006 05 05 // part 02/03 - conveyor
\wx8002 09 09 // part 04/05 - platform building
\wx8000 // part 06/07 - mineral platform

// Callback 24

1261 * 14	 02 04 09 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
01
\wx8004 00 00 // platform building
\wx8006 // mineral platform

1262 * 14	 02 04 08 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
01
\wx8000 00 00 // silo building
\wx8002 // overhead convyor

// For platform length >4
1263 * 14	 02 04 07 // ID
81 10 // platform info and relative position
00 03 // position along platform from N
01
\wx0008 01 01 // 1 tile from N - silo
\wx0009 // else

// For platform length 2 or 3
1264 * 14	 02 04 06 // ID
81 10 // platform info and relative position
00 0F // position along platform from N
01
\wx0008 00 00 // northern end - silo
\wx0009 // else

1265 * 14	 02 04 05 // ID
81 10 // platform info and relative position
10 0F // platform length
01
\wx0006 00 02 // platform length < 3
\wx0007 // else

// Callback handlers
1266 * 14	 02 04 30 // ID
81 0C // callback
00 FF
01
\wx000A 14 14 // sprite layout
\wx0040 // real sprites - coal

1267 * 14	 02 04 31 // ID
81 0C // callback
00 FF
01
\wx000A 14 14 // sprite layout
\wx0041 // real sprites - iron ore

1268 * 14	 02 04 32 // ID
81 0C // callback
00 FF
01
\wx000A 14 14 // sprite layout
\wx0042 // real sprites - copper ore

1269 * 14	 02 04 33 // ID
81 0C // callback
00 FF
01
\wx000A 14 14 // sprite layout
\wx0043 // real sprites - clay

1270 * 14	 02 04 34 // ID
81 0C // callback
00 FF
01
\wx000A 14 14 // sprite layout
\wx0044 // real sprites - gravel

1271 * 14	 02 04 35 // ID
81 0C // callback
00 FF
01
\wx000A 14 14 // sprite layout
\wx0045 // real sprites - limestone

1272 * 14	 02 04 36 // ID
81 0C // callback
00 FF
01
\wx000A 14 14 // sprite layout
\wx0046 // real sprites - sand

1273 * 14	 02 04 37 // ID
81 0C // callback
00 FF
01
\wx000A 14 14 // sprite layout
\wx0047 // real sprites - bauxite

1274 * 14	 02 04 38 // ID
81 0C // callback
00 FF
01
\wx000A 14 14 // sprite layout
\wx0048 // real sprites - nitrates

// For purchase list
1275 * 18	 02 04 3F // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout - purchase
\wx0005 24 24 // station layout
\wx0000 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
1276 * 39	 02 04 07 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E
\wx004E

//@@WARNING ENABLE 113

// No suitable cargo
1277 * 14	 02 04 3E // ID
81 0C // callback
00 FF
01
\wx000A 14 14 // sprite layout
\wx0007 // real sprites - empty

1278 * 37	 03 04
01 03
0A
01 \wx0030 // coal
08 \wx0031 // iron ore
0E \wx0032 // copper ore
16 \wx0033 // clay
17 \wx0034 // gravel
18 \wx0035 // limestone
19 \wx0036 // sand
28 \wx0037 // bauxite
3A \wx0038 // nitrates
FF \wx003F // purchase
\wx003E // no suitable cargo
1279 * 544	 00 04 05 01 04
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) - empty
41
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx80000447 \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
03 // register

// 01 (y) - empty
41
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx80000448 \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
03 // register

// 02 (x) - overhead unloader
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx80000447 \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
03 // register
\dx80000437 \wx0000 // unloader N
00 00 00 // x/y/z offset
10 05 15 // x/y/z extent
\dx80000443 \wx0001 // unloader N snow
06 00 80 // x/y/z offset
02 // register
\dx80000439 \wx0000 // unloader S
00 0B 00 // x/y/z offset
10 05 22 // x/y/z extent
\dx80000445 \wx0001 // unloader S snow
00 00 80 // x/y/z offset
02 // register

// 03 (y) - overhead unloader
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx80000448 \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
03 // register
\dx80000438 \wx0000 // unloader N
00 00 00 // x/y/z offset
05 10 15 // x/y/z extent
\dx80000444 \wx0001 // unloader N snow
00 00 80 // x/y/z offset
02 // register
\dx8000043A \wx0000 // unloader S
0B 00 00 // x/y/z offset
05 10 22 // x/y/z extent
\dx80000446 \wx0001 // unloader S snow
00 00 80 // x/y/z offset
02 // register

// 04 (x) - building and conveyor
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx80000447 \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
03 // register
\dx8000842D \wx0000 // building and conveyor
00 00 00 // x/y/z offset
10 04 11 // x/y/z extent
\dx8000043B \wx0001 // building and conveyor snow
00 0C 80 // x/y/z offset
02 // register
\dx8000042F \wx0001 // building rear
09 0C 00 // x/y/z offset
07 04 0E // x/y/z extent
05 // register
\dx8000043D \wx0001 // building rear snow
00 00 80 // x/y/z offset
02 // register

// 05 (y) - building and conveyor
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx80000448 \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
03 // register
\dx8000842E \wx0000 // building and conveyor
00 00 00 // x/y/z offset
04 10 11 // x/y/z extent
\dx8000043C \wx0001 // building and conveyor snow
14 0C 80 // x/y/z offset
02 // register
\dx80000430 \wx0001 // building rear
0C 09 00 // x/y/z offset
04 07 0E // x/y/z extent
05 // register
\dx8000043E \wx0001 // building rear snow
00 00 80 // x/y/z offset
02 // register

// 06 (x) - buildings maybe bulldozer
48
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx80000447 \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
03 // register
\dx80000431 \wx0001 // C front (back platform)
00 00 00 // x/y/z offset
07 04 14 // x/y/z extent
06 // register
\dx8000043B \wx0001 // C front snow
00 00 80 // x/y/z offset
02 // register
\dx80000435 \wx0001 // D (back platform) - only platform 0
07 00 00 // x/y/z offset
04 04 0E // x/y/z extent
04 // register
\dx80000441 \wx0001 // D snow
00 00 80 // x/y/z offset
02 // register
\dx8000042D \wx0041 // bulldozer
04 00 00 // x/y/z offset
08 03 0A // x/y/z extent
07 // register
05 // value for variable 10
\dx80000433 \wx0001 // C rear (front platform)
00 0C 00 // x/y/z offset
0B 04 14 // x/y/z extent
05 // register
\dx8000043F \wx0001 // C rear snow
00 00 80 // x/y/z offset
02 // register

// 07 (y) - buildings maybe bulldozer
48
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx80000448 \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
03 // register
\dx80000432 \wx0001 // C front (back platform)
00 00 00 // x/y/z offset
04 07 14 // x/y/z extent
06 // register
\dx8000043C \wx0001 // C front snow
00 00 80 // x/y/z offset
02 // register
\dx80000436 \wx0001 // D (back platform) - only platform 0
00 07 00 // x/y/z offset
04 04 0E // x/y/z extent
04 // register
\dx80000442 \wx0001 // D snow
00 00 80 // x/y/z offset
02 // register
\dx8000042E \wx0041 // bulldozer
00 04 00 // x/y/z offset
03 08 0A // x/y/z extent
07 // register
05 // value for variable 10
\dx80000434 \wx0001 // C rear (front platform)
0C 00 00 // x/y/z offset
04 0B 14 // x/y/z extent
05 // register
\dx80000440 \wx0001 // C rear snow
00 00 80 // x/y/z offset
02 // register

// 08 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

0D 01 // only allow a length of 2 or more

11 FF // pylon placement (all)

1280 * 4	 01 04 01 32
1281 images/newmines7.pcx 7 450 01 34 41 -31 -16 // 042D x, conveyor (A)
1282 images/newmines7.pcx 7 492 01 34 41 -8 -16 // 042E y, conveyor (A)
1283 images/newmines7.pcx 53 450 01 21 17 -7 -11 // 042F x, conveyor building back (A)
1284 images/newmines7.pcx 53 492 01 21 17 -8 -11 // 0430 y, conveyor building back (A)
1285 images/newmines7.pcx 75 450 01 28 21 -13 -19 // 0431 x, main building front (C)
1286 images/newmines7.pcx 75 492 01 28 21 -6 -19 // 0432 y, main building front (C)
1287 images/newmines7.pcx 101 450 01 34 28 -18 -20 // 0433 x, main building back (C)
1288 images/newmines7.pcx 101 492 01 34 28 -8 -20 // 0434 y, main building back (C)

1289 images/newmines7.pcx 134 450 01 19 14 -7 -13 // 0435 x, small building (D)
1290 images/newmines7.pcx 134 492 01 19 14 -5 -13 // 0436 y, small building (D)
1291 images/newmines7.pcx 154 450 01 26 25 -26 -15 // 0437 x, unloader back
1292 images/newmines7.pcx 154 492 01 26 25 3 -15 // 0438 y, unloader back
1293 images/newmines7.pcx 184 450 01 35 35 -34 -20 // 0439 x, unloader front
1294 images/newmines7.pcx 184 492 01 35 35 1 -20 // 043A y, unloader front

1295 images/newmines7.pcx 225 450 01 14 21 0 0 // 043B x, conveyor (A) and building front (C) snow
1296 images/newmines7.pcx 225 492 01 14 21 0 0 // 043C y, conveyor (A) and building front (C) snow
1297 images/newmines7.pcx 250 450 01 10 17 0 0 // 043D x, conveyor building back (A) snow
1298 images/newmines7.pcx 250 492 01 10 17 0 0 // 043E y, conveyor building back (A) snow
1299 images/newmines7.pcx 271 450 01 22 28 0 0 // 043F x, building back (C) snow
1300 images/newmines7.pcx 271 492 01 22 28 0 0 // 0440 y, building back (C) snow

1301 images/newmines7.pcx 304 450 01 10 14 0 0 // 0441 x, small building (D) snow
1302 images/newmines7.pcx 304 492 01 10 14 0 0 // 0442 y, small building (D) snow
1303 images/newmines7.pcx 323 450 01 11 19 0 0 // 0443 x, unloader back snow
1304 images/newmines7.pcx 323 492 01 11 19 0 0 // 0444 y, unloader back snow
1305 images/newmines7.pcx 346 450 01 17 35 0 0 // 0445 x, unloader front snow
1306 images/newmines7.pcx 346 492 01 17 35 0 0 // 0446 y, unloader front snow

1307 images/newmines7.pcx 7 533 01 31 64 -31 0 // 0447 x, N normal rail
1308 images/newmines7.pcx 214 533 01 31 64 -31 0 // 0448 y, N normal rail
1309 images/newmines7.pcx 76 533 01 31 64 -31 0 // 0449 x, M normal rail
1310 images/newmines7.pcx 283 533 01 31 64 -31 0 // 044A y, M normal rail
1311 images/newmines7.pcx 145 533 01 31 64 -31 0 // 044B x, S normal rail
1312 images/newmines7.pcx 352 533 01 31 64 -31 0 // 044C y, S normal rail

1313 images/newmines7.pcx 7 569 01 31 64 -31 0 // 044D x, N monorail
1314 images/newmines7.pcx 214 569 01 31 64 -31 0 // 044E y, N monorail
1315 images/newmines7.pcx 76 569 01 31 64 -31 0 // 044F x, M monorail
1316 images/newmines7.pcx 283 569 01 31 64 -31 0 // 0450 y, M monorail
1317 images/newmines7.pcx 145 569 01 31 64 -31 0 // 0451 x, S monorail
1318 images/newmines7.pcx 352 569 01 31 64 -31 0 // 0452 y, S monorail

1319 images/newmines7.pcx 7 605 01 31 64 -31 0 // 0453 x, N maglev
1320 images/newmines7.pcx 214 605 01 31 64 -31 0 // 0454 y, N maglev
1321 images/newmines7.pcx 76 605 01 31 64 -31 0 // 0455 x, M maglev
1322 images/newmines7.pcx 283 605 01 31 64 -31 0 // 0456 y, M maglev
1323 images/newmines7.pcx 145 605 01 31 64 -31 0 // 0457 x, S maglev
1324 images/newmines7.pcx 352 605 01 31 64 -31 0 // 0458 y, S maglev

1325 images/newmines7.pcx 7 641 01 31 64 -31 0 // 0459 x, N fine scale rail
1326 images/newmines7.pcx 214 641 01 31 64 -31 0 // 045A y, N fine scale rail
1327 images/newmines7.pcx 76 641 01 31 64 -31 0 // 045B x, M fine scale rail
1328 images/newmines7.pcx 283 641 01 31 64 -31 0 // 045C y, M fine scale rail
1329 images/newmines7.pcx 145 641 01 31 64 -31 0 // 045D x, S fine scale rail
1330 images/newmines7.pcx 352 641 01 31 64 -31 0 // 045E y, S fine scale rail

1331 * 7	 02 04 00 // ID
00 01
\w0

1332 * 4	 01 04 01 02
// Purchase list
1333 images/purchaseicons.pcx 19 221 09 62 64 -31 -31 // 042D x
1334 images/purchaseicons.pcx 91 221 09 62 64 -31 -31 // 042E y

1335 * 7	 02 04 0A // ID
00 01 // Number of sets (little and lots)
\w0

// Real Sprites

// Test variable 10 for real sprites
1336 * 14	 02 04 1D // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00CE 05 05 // bulldozer sprites
\wx0000 // mineral unloader sprites

// Building (station part 6/7)
// Test tile on platform to north is building to show/hide building D on platform 0
1337 * 18	 02 04 3F // ID
85 68 F0 // station info param -1/0; check tile on platform to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8000 04 35 04 35 // part 06/07 - hide building
\wx8001 // show building

// Test tile on platform to south is building to show/hide back part of building
1338 * 18	 02 04 19 // ID
85 68 10 // station info param 1/0; check tile on platform to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8001 04 35 04 35 // part 06/07 - show building
\wx8000 // hide building

// Building/bulldozer replacing overhead unloader (station part 2/3)
// Bulldozer
1339 * 11	 02 04 0F // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

1340 * 14	 02 04 17 // ID
81 41 // platform info and relative position
0C 0F // platform number from S
01
\wx8000 00 00 // south platform
\wx000F // else

1341 * 14	 02 04 18 // ID
81 41 // platform info and relative position
08 01 // platform number from N mod 2
01
\wx0017 00 00 // even
\wx8000 // odd

1342 * 14	 02 04 40 // ID
81 41 // platform info and relative position
14 0F // number of platforms
01
\wx8001 01 01 // only 1 platform
\wx0018 // else

// Building C back
1343 * 14	 02 04 45 // ID
81 41 // platform info and relative position
0C 0F // platform number from S
01
\wx8000 00 00 // south platform
\wx8001 // else

1344 * 14	 02 04 44 // ID
81 41 // platform info and relative position
08 01 // platform number from N mod 2
01
\wx0045 00 00 // even
\wx8000 // odd

1345 * 14	 02 04 43 // ID
81 41 // platform info and relative position
14 0F // number of platforms
01
\wx8000 01 01 // only 1 platform
\wx0044 // else

// Building C front
1346 * 14	 02 04 47 // ID
81 41 // platform info and relative position
08 01 // platform number from N mod 2
01
\wx8000 00 00 // even
\wx8001 // odd

1347 * 14	 02 04 46 // ID
81 41 // platform info and relative position
14 0F // number of platforms
01
\wx8000 01 01 // only 1 platform
\wx0047 // else

// Conveyor (station part 2/3)
// Test tile on platform to south is conveyor to show/hide back of conveyor building
1348 * 18	 02 04 16 // ID
85 68 10 // station info param 1/0; check tile on platform to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8001 04 25 04 25 // part 04/05 - show building
\wx8000 // hide building

// Ground overlay
// Returns ground overlay offset
// If tile to north is not part of this station this is a north end.
1349 * 18	 02 04 3E // ID
85 68 0F // station info param 0/-1; check tile along platform to N
00 \wx0FFF // mask 12 bits for tile ID, type, and direction
01
\wx8002 04 05 04 05
\wx8000 // N end

// If tile to south is not part of this station this is a south end.
1350 * 18	 02 04 42 // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx0FFF // mask 12 bits for tile ID, type, and direction
01
\wx003E 04 05 04 05
\wx8004 // S end

// For monorail check if sprites have been replaced by old type rail grf
1351 * 15	 02 04 3A // ID
81 7F 14 // read parameter 14
00 FF
01
\wx8006 02 02 // monorail (offset 6)
\wx8000 // normal rail (offset 0)

// For maglev check if sprites have been replaced by old type rail grf
1352 * 15	 02 04 3B // ID
81 7F 15 // read parameter 15
00 FF
01
\wx800C 03 03 // maglev (offset 12)
\wx8000 // normal rail (offset 0)

// Test for track type
1353 * 18	 02 04 3C // ID
81 42 // terrain and track type
08 FF
02
\wx003A 02 02 // monorail
\wx003B 03 03 // maglev
\wx8000 // normal rail (offset 0)

// Show overlay for fine scale railtypes grf (pb_trax, xUSSR)
1354 * 15	 02 04 3D // ID
81
7F 16 // read parameter 16
00 FF
01
\wx8012 01 01 // fine scale rail set (offset 18)
\wx003C // else

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

// Empty
1355 * 46	 02 04 35 // ID
85
7E 3D // get railtype sprite offset
20 \wx00FF
\2+
7E 42 // add position sprite offset
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - ground overlay sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001D \w0 \w0
\wx001D

// Overhead unloader
1356 * 57	 02 04 36 // ID
85
7E 3D // get railtype sprite offset
20 \wx00FF
\2+
7E 42 // add position sprite offset
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - ground overlay sprite offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001D \w0 \w0
\wx001D

// Building and conveyor
1357 * 68	 02 04 37 // ID
85
7E 3D // get railtype sprite offset
20 \wx00FF
\2+
7E 42 // add position sprite offset
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - ground overlay sprite offset
\2rst
7E 16 // get show/hide flag for rear of building
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001D \w0 \w0
\wx001D

// Buildings
1358 * 99	 02 04 38 // ID
85
7E 3D // get railtype sprite offset
20 \wx00FF
\2+
7E 42 // add position sprite offset
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - ground overlay sprite offset
\2rst
1A // all bits on
20 \wx0001 // show
\2sto 1A
20 \wx0006 // store in register - show building C
\2rst
7E 19 // get show/hide flag for rear of building C
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E 3F // get show/hide flag for small building D
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst
1A // all bits on
20 \wx0000 // hide
\2sto 1A
20 \wx0007 // store in register - show/hide flag for bulldozer
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001D \w0 \w0
\wx001D

// Building C with bulldozer
1359 * 100	 02 04 39 // ID
85
7E 3D // get railtype sprite offset
20 \wx00FF
\2+
7E 42 // add position sprite offset
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - ground overlay sprite offset
\2rst
7E 46 // get show/hide flag for building C
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - hide building C
\2rst
7E 43 // get show/hide flag for rear of building C
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
1A // all bits on
20 \wx0000 // hide small building D
\2sto 1A
20 \wx0004 // store in register
\2rst
7E 40 // get show/hide flag for bulldozer
20 \wx00FF
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001D \w0 \w0
\wx001D

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Overhead unloader - the unloader requires a conveyor to the south
// if there is no conveyor show building\bulldozer instead
// Test tile to south is conveyor
1360 * 18	 02 04 1F // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0036 04 25 04 25 // part 04/05 - overhead unloader
\wx0039 // bulldozer/building

// Test tile at current position
1361 * 23	 02 04 1A // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0035 01 01 // part 00/01 - empty (ends)
\wx001F 05 05 // part 02/03 - overhead unloader
\wx0037 09 09 // part 04/05 - conveyor
\wx0038 // part 06/07 - building

// Callback 14 - Sprite layout

// Test tile to south is conveyor
1362 * 18	 02 04 11 // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8002 04 25 04 25 // part 04/05 - overhead unloader
\wx8006 // bulldozer/building

// Test tile at current position
1363 * 23	 02 04 10 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx8000 01 01 // part 00/01 - empty (ends)
\wx0011 05 05 // part 02/03 - overhead unloader
\wx8004 09 09 // part 04/05 - conveyor
\wx8006 // part 06/07 - building

// Callback 24 - Station layout

1364 * 20	 02 04 08 // ID
81 10 // platform info and relative position
80 0F 00 03 // position along platform from N mod 3
02
\wx8002 01 01 // overhead unloader
\wx8004 02 02 // conveyor
\wx8006 // building

// For platform length >4
1365 * 14	 02 04 07 // ID
81 10 // platform info and relative position
00 0F // position along platform from N
01
\wx8000 00 00 // northern end - empty
\wx0008 // else

// For platform length 2 or 3
1366 * 14	 02 04 06 // ID
81 10 // platform info and relative position
00 0F // position along platform from N
01
\wx8004 00 00 // northern end - conveyor
\wx8006 // building

1367 * 14	 02 04 05 // ID
81 10 // platform info and relative position
10 0F // platform length
01
\wx0006 02 03 // platform length 2 or 3
\wx0007 // else

1368 * 14	 02 04 04 // ID
81 10 // platform info and relative position
04 0F // position along platform from S
01
\wx8000 00 00 // southern end - empty
\wx0005 // else

1369 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx0010 14 14 // sprite layout
\wx001A // real sprites

// For purchase list
1370 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout
\wx0004 24 24 // station layout
\wx000A // real sprites

1371 * 10	 03 04
01 04
01
FF \wx0003 // purchase
\wx0002
1372 * 208	 00 04 04 01 05
08 "ISRA"

// Sprite layout
1A 04
// 00 (x)
46
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0001 // silo
00 00 00 // x/y/z offset
10 05 3C // x/y/z extent
01 // register
\dx80000433 \wx0001 // silo snow
00 00 80 // x/y/z offset
05 // register
\dx8000842F \wx0001 // pipes
00 00 00 // x/y/z offset
10 05 0D // x/y/z extent
02 // register
\dx80008431 \wx0001 // building
00 00 00 // x/y/z offset
10 05 14 // x/y/z extent
03 // register
\dx80000435 \wx0001 // building snow
10 04 80 // x/y/z offset
05 // register

// 01 (y)
46
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842E \wx0001 // silo
00 00 00 // x/y/z offset
05 10 3C // x/y/z extent
01 // register
\dx80000434 \wx0001 // silo snow
00 00 80 // x/y/z offset
05 // register
\dx80008430 \wx0001 // pipes
00 00 00 // x/y/z offset
05 10 0D // x/y/z extent
02 // register
\dx80008432 \wx0001 // building
00 00 00 // x/y/z offset
05 10 14 // x/y/z extent
03 // register
\dx80000436 \wx0001 // building snow
00 04 80 // x/y/z offset
05 // register

// 02 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 03 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

1373 * 4	 01 04 01 0A
1374 images/newoil.pcx 3 3 01 75 39 -30 -57 // 042D x, silo
1375 images/newoil.pcx 137 3 01 75 39 -7 -57 // 042E y, silo
1376 images/newoil.pcx 49 3 01 31 41 -31 -12 // 042F x, pipes
1377 images/newoil.pcx 183 3 01 31 41 -8 -12 // 0430 y, pipes
1378 images/newoil.pcx 97 3 01 32 33 -24 -14 // 0431 x, building
1379 images/newoil.pcx 231 3 01 32 33 -7 -14 // 0432 y, building
1380 images/newoil.pcx 271 3 01 21 39 0 0 // 0433 x, silo snow
1381 images/newoil.pcx 337 3 01 21 39 0 0 // 0434 y, silo snow
1382 images/newoil.pcx 315 3 01 12 17 0 0 // 0435 x, building snow
1383 images/newoil.pcx 381 3 01 12 17 0 0 // 0436 y, building snow

1384 * 7	 02 04 00 // ID
00 01
\w0

1385 * 4	 01 04 01 02
// Purchase list
1386 images/purchaseicons.pcx 163 221 09 62 64 -31 -31 // 042D x
1387 images/purchaseicons.pcx 235 221 09 62 64 -31 -31 // 042E y

1388 * 7	 02 04 0A // ID
00 01
\w0

// Test variable 10 for real sprites
1389 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx0000 // oil facility sprites

1390 * 23	 02 04 01 // ID
80
00 // don't re-randomise
10 // use bits 16 to 18
08
\wx8001
\wx8000
\wx8000
\wx8000
\wx8001
\wx8000
\wx8000
\wx8000

1391 * 23	 02 04 07 // ID
80
00 // don't re-randomise
10 // use bits 16 to 18
08
\wx8000
\wx8001
\wx8000
\wx8001
\wx8000
\wx8000
\wx8001
\wx8000

1392 * 23	 02 04 08 // ID
80
00 // don't re-randomise
10 // use bits 16 to 18
08
\wx8000
\wx8000
\wx8001
\wx8000
\wx8000
\wx8001
\wx8000
\wx8000

//@@WARNING DISABLE 100

1393 * 73	 02 04 15 // ID
85
7E 01 // get show/hide flag for silo
20 \wx00FF
\2sto 1A
20 \wx0001 // store in register
\2rst
7E 07 // get show/hide flag for pipes
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E 08 // get show/hide flag for building
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

1394 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
1395 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx000A // real sprites

1396 * 10	 03 04
01 05
01
FF \wx0005 // purchase
\wx0002
1397 * 418	 00 04 07 01 06
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) - wood platforms
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0042 // logs back
00 00 00 // x/y/z offset
10 05 0C // x/y/z extent
11 // register
05 // value for variable 10
\dx8000042E \wx0043 // logs front
00 0B 00 // x/y/z offset
10 05 0C // x/y/z extent
14 15 // registers
05 // value for variable 10

// 01 (y) - wood platforms
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0042 // logs back
00 00 00 // x/y/z offset
05 10 0C // x/y/z extent
11 // register
05 // value for variable 10
\dx80000430 \wx0043 // logs front
0B 00 00 // x/y/z offset
05 10 0C // x/y/z extent
14 15 // registers
05 // value for variable 10

// 02 (x) - wood platforms with shelter or hut
44
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0002 // shelter or hut back
00 00 00 // x/y/z offset
10 05 10 // x/y/z extent
13 // register
\dx80000435 \wx0003 // shelter or hut snow
00 00 80 // x/y/z offset
03 13 // registers
\dx8000042E \wx0042 // logs front
00 0B 00 // x/y/z offset
10 05 0C // x/y/z extent
15 // register
05 // value for variable 10

// 03 (y) - wood platforms with shelter or hut
44
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000430 \wx0002 // shelter or hut back
00 00 00 // x/y/z offset
05 10 10 // x/y/z extent
13 // register
\dx80000436 \wx0003 // shelter or hut snow
00 00 80 // x/y/z offset
03 13 // registers
\dx80000430 \wx0042 // logs front
0B 00 00 // x/y/z offset
05 10 0C // x/y/z extent
15 // register
05 // value for variable 10

// 04 (x) - crossing
42
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0042 // ground overlay sprite (child) - crossing
00 00 80 // x/y/z offset
0A // register
06 // value for variable 10
\dx8000842F \wx0043 // crawler crane
00 0B 00 // x/y/z offset
10 05 2B // x/y/z extent
12 09 // registers
07 // value for variable 10

// 05 (y) - crossing
42
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0042 // ground overlay sprite (child) - crossing
00 00 80 // x/y/z offset
0A // register
06 // value for variable 10
\dx80008430 \wx0043 // crawler crane
0B 00 00 // x/y/z offset
05 10 2B // x/y/z extent
12 09 // registers
07 // value for variable 10

// 06 (x) - shed
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // shed
00 00 00 // x/y/z offset
10 05 12 // x/y/z extent
\dx80000433 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // register

// 07 (y) - shed
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // shed
00 00 00 // x/y/z offset
05 10 12 // x/y/z extent
\dx80000434 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // register

// 08 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

10 \w400 // set little / lots threshold

11 F3 // pylon placement (all but crossing)
14 0C // wires - (not shown on crossing)

12 \dx00080080 // cargo types for randomisation triggers

1398 * 4	 01 04 01 0C
1399 images/newwood4.pcx 3 137 09 24 37 -30 -8 // 042D x, shed
1400 images/newwood4.pcx 48 137 09 24 37 -5 -8 // 042E y, shed
1401 images/newwood4.pcx 99 137 09 31 39 -29 -12 // 042F x, shelter
1402 images/newwood4.pcx 145 137 09 31 39 -8 -12 // 0430 y, shelter
1403 images/newwood4.pcx 191 137 09 23 25 -21 -9 // 0431 x, hut
1404 images/newwood4.pcx 222 137 09 23 25 -2 -9 // 0432 y, hut

1405 images/newwood4.pcx 3 111 09 18 37 0 0 // 0433 x, shed snow
1406 images/newwood4.pcx 48 111 09 18 37 0 0 // 0434 y, shed snow
1407 images/newwood4.pcx 99 111 09 20 39 0 0 // 0435 x, shelter snow
1408 images/newwood4.pcx 145 111 09 20 39 0 0 // 0436 y, shelter snow
1409 images/newwood4.pcx 191 111 09 14 25 0 1 // 0437 x, hut snow
1410 images/newwood4.pcx 222 111 09 14 25 0 1 // 0438 y, hut snow

1411 * 7	 02 04 01 // ID
00 01
\w0

1412 * 4	 01 04 01 02
// Purchase list
1413 images/purchaseicons.pcx 19 151 09 47 64 -31 -16 // 042D x
1414 images/purchaseicons.pcx 91 151 09 47 64 -31 -16 // 042E y

1415 * 7	 02 04 00 // ID
00 01
\w0

// Real Sprites

// Test variable 10 for real sprites
1416 * 26	 02 04 1D // ID
81 10 // additional information for sprite selection
00 0F
04
\wx00FD 04 04 // ground overlay sprites
\wx00DE 05 05 // log pile sprites
\wx00F6 06 06 // crossing sprites
\wx00CF 07 07 // crawler crane sprites
\wx0001 // building sprites

// Test variable 10 for real sprites - empty
1417 * 26	 02 04 1E // ID
81 10 // additional information for sprite selection
00 0F
04
\wx00FD 04 04 // ground overlay sprites
\wx00DD 05 05 // log pile sprites
\wx00F6 06 06 // crossing sprites
\wx00CF 07 07 // crawler crane sprites
\wx0001 // building sprites

// Procedure to show/hide logs on S platform
1418 * 18	 02 04 3D // ID
85 68 10 // station info param +1/0; check tile on platform to S
00 FF 3F // mask 14 bits for tile ID, type, direction and part
01
\wx8000 06 35 06 35 // part #06/07 - shed - hide logs
\wx8001 // show logs

// Random crane variety for modern cranes
1419 * 11	 02 04 15 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000 // cc crane
\wx8004 // red/white crane

// Select age related crane type
1420 * 17	 02 04 14 // ID
85 FA // date station was built
00 \wxFFFF
01
\wx8008 \w0 \w01/01/1950 // before 1950 - steam crane
\wx0015 // modern crane

// Procedure to maybe show crane
1421 * 15	 02 04 3E // ID
80
00 // don't re-randomise
12 // use bits 18 and 19
04
\wx8000
\wx8001
\wx8000
\wx8000

// Procedure to select hut or shelter
1422 * 11	 02 04 3F // ID
80
00 // don't re-randomise
13 // use bit 19
02
\wx8000
\wx8002

// Procedure to select log type front
1423 * 11	 02 04 3C // ID
80
00 // no more cargo (triggered by random in graphics chain)
11 // use bit 17
02
\wx8000
\wx8004

// Procedure to select log type back
1424 * 11	 02 04 40 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bit 16
02
\wx8000
\wx8004

//@@WARNING DISABLE 100

// Log platform sprite layout
1425 * 62	 02 04 27 // ID
85
7E 40 // get random log type offset
20 \wx00FF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E 3C // get random log type offset
20 \wx00FF
\2sto 1A
20 \wx0015 // store in register
\2rst
7E 3D // get front logs flag
20 \wx00FF
\2sto 1A
20 \wx0014 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001D \w0 \w0
\wx001D

// Log platform sprite layout - empty
1426 * 49	 02 04 28 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0011 // store in register - random log type offset
\2sto 1A
20 \wx0015 // store in register - random log type offset
\2sto 1A
20 \wx0014 // store in register - front logs flag
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001E \w0 \w0
\wx001E

// Crossing sprite layout
1427 * 62	 02 04 26 // ID
85
7E BA // get crossing overlay offset
20 \wx00FF
\2sto 1A
20 \wx000A // store in register
\2rst
7E 14 // get random crane type offset
20 \wx00FF
\2sto 1A
20 \wx0009 // store in register
\2rst
7E 3E // get random crane visibility flag
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001D \w0 \w0
\wx001D

// Building sprite layout
1428 * 62	 02 04 25 // ID
85
7E 40 // get random log type offset
20 \wx00FF
\2sto 1A
20 \wx0015 // store in register
\2rst
7E 3F // get random shelter/hut offset
20 \wx00FF
\2sto 1A
20 \wx0013 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001D \w0 \w0
\wx001D

// Shed sprite layout
1429 * 40	 02 04 24 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001D \w0 \w0
\wx001D

//@@@WARNING ENABLE 100

// Test tile at current position
1430 * 23	 02 04 1A // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0027 01 01 // part 00/01 - wood piles
\wx0026 05 05 // part 02/03 - crossing
\wx0025 09 09 // part 04/05 - building
\wx0024 // part 06/07 - shed

// Test tile at current position - empty
1431 * 23	 02 04 1B // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0028 01 01 // part 00/01 - wood piles
\wx0026 05 05 // part 02/03 - crossing
\wx0025 09 09 // part 04/05 - building
\wx0024 // part 06/07 - shed

// Callback 14

// Test tile at current position
1432 * 23	 02 04 20 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx8000 01 01 // part 00/01 - wood piles
\wx8004 05 05 // part 02/03 - crossing
\wx8002 09 09 // part 04/05 - building
\wx8006 // part 06/07 - shed

// Callback 24

// Platform 0
1433 * 20	 02 04 05 // ID
81 10 // platform info and relative position
80 0F 00 06 // position along platform from N mod 6
02
\wx8004 01 01 // building
\wx8002 03 03 // crossing
\wx8000 // wood piles

// Platform 1 and 2
1434 * 20	 02 04 06 // ID
81 10 // platform info and relative position
80 0F 00 06 // position along platform from N mod 6
02
\wx8006 00 00 // shed
\wx8002 03 03 // crossing
\wx8000 // wood piles

// Platform 3
1435 * 20	 02 04 08 // ID
81 10 // platform info and relative position
80 0F 00 06 // position along platform from N mod 6
02
\wx8002 03 03 // crossing
\wx8004 04 04 // building
\wx8000 // wood piles

1436 * 18	 02 04 09 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
02
\wx0005 00 00
\wx0006 01 02
\wx0008

1437 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx0020 14 14 // sprite layout
\wx001A // real sprites

// For purchase list
1438 * 18	 02 04 05 // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout
\wx0009 24 24 // station layout
\wx0000 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
1439 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B

1440 * 23	 02 04 0C // ID
80
02 // no more cargo
10 // trigger bits 16 to 18 (19 is used for building type)
08
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B
\wx001B

//@@WARNING ENABLE 113

// Only re-randomise wood platforms
1441 * 19	 02 04 0A // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
02
\wx000B 01 01 // part 00/01 - wood platforms
\wx000C 09 09 // part 04/05 - building (with wood)
\wx001B // else

// No suitable cargo
1442 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx0020 14 14 // sprite layout
\wx000A // real sprites

1443 * 16	 03 04
01 06
03
07 \wx0004 // wood
13 \wx0004 // tropic wood
FF \wx0005 // purchase
\wx0003 // no suitable cargo
1444 * 4	 01 04 01 02
// Purchase list
1445 images/purchaseicons.pcx 163 291 09 62 64 -31 -31 // 042D x
1446 images/purchaseicons.pcx 235 291 09 62 64 -31 -31 // 042E y

1447 * 7	 02 04
01 // ID
00 01
\w0

1448 * 388	 00 04 05 01 07
08 "ISRA"

// Sprite layout
1A 08
// 00 (x) - shed
45
\dx000003F4 \wx0000 // ground sprite - track
\dx80000433 \wx0000 // back part
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent
\dx80000439 \wx0001 // back part snow
00 00 80 // x/y/z offset
03 // register
\dx8000842D \wx0002 // shed
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent
12 // register
\dx80000437 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // register
\dx80000435 \wx0001 // door
02 1E 80 // x/y/z offset
02 // register

// 01 (y) - shed
45
\dx000003F3 \wx0000 // ground sprite - track
\dx80000434 \wx0000 // back part
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent
\dx8000043A \wx0001 // back part snow
10 00 80 // x/y/z offset
03 // register
\dx8000842E \wx0002 // shed
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent
12 // register
\dx80000438 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // register
\dx80000436 \wx0001 // door
28 1E 80 // x/y/z offset
02 // register

// 02 (x) - unloader
46
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // back platform part
05 00 00 // x/y/z offset
06 04 16 // x/y/z extent
\dx80000433 \wx0001 // back part snow
00 00 80 // x/y/z offset
03 // register
\dx8000042F \wx0000 // front platform part
00 0B 00 // x/y/z offset
10 05 24 // x/y/z extent
\dx80000435 \wx0001 // front part snow
00 00 80 // x/y/z offset
03 // register
\dx80008431 \wx0001 // sign (child)
01 09 80 // x/y/z offset
12 // register

// 03 (y) - unloader
46
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // back platform part
00 05 00 // x/y/z offset
04 06 16 // x/y/z extent
\dx80000434 \wx0001 // back part snow
00 00 80 // x/y/z offset
03 // register
\dx80000430 \wx0000 // front platform part
0B 00 00 // x/y/z offset
05 10 24 // x/y/z extent
\dx80000436 \wx0001 // front part snow
00 00 80 // x/y/z offset
03 // register
\dx80008432 \wx0001 // sign (child)
14 09 80 // x/y/z offset
12 // register

// 04 (x) - platform maybe with forklift
42
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0003 // forklift
05 01 00 // x/y/z offset
06 02 09 // x/y/z extent
08 12 // registers

// 05 (y) - platform maybe with forklift
42
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0003 // forklift
01 05 00 // x/y/z offset
02 06 09 // x/y/z extent
08 12 // registers

// 06 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 07 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

11 F0 // pylon placement (tile types 4 and 6)
14 0F // wires (disable tile types 0 and 2)

// Real Sprites

// Test tile at current position for real sprites
1449 * 23	 02 04 1E // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx00EB 01 01 // part 00/01 - shed A
\wx00E9 05 05 // part 02/03 - shed C
\wx00E8 09 09 // part 04/05 - unloader
\wx00D1 // part 06/07 - empty or vehicle

// Test variable 10 for real sprites
1450 * 14	 02 04 1D // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx001E // else

// Shed variety offset
1451 * 39	 02 04 17 // ID
80
00 // don't re-randomise
10 // use bits 16+
10
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000

// Valuables unloader cc sign visibility
1452 * 11	 02 04 1A // ID
80
00 // don't re-randomise
00 // use bit 0
02
\wx8000
\wx8001

// Forklift variety offset
1453 * 11	 02 04 18 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

// Maybe show vehicle
1454 * 15	 02 04 1E // ID
80
00 // don't re-randomise
11 // use bits 17 and 18
04
\wx8000
\wx8000
\wx8000
\wx8001

//@@WARNING DISABLE 100

// Shed sprite layout
1455 * 45	 02 04 27 // ID
85
7E 17 // get random shed type offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BC // get door open/closed
20 \wx00FF
\2sto 1A
00 \wx0002 // store in register
01
\wx001D \w0 \w0
\wx001D

// Unloader sprite layout
1456 * 51	 02 04 28 // ID
85
7E 1A // get random show/hide flag for sign
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001D \w0 \w0
\wx001D

// Platform sprite layout
1457 * 51	 02 04 29 // ID
85
7E 18 // get random forklift type offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E 1E // get random forklift show/hide flag
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001D \w0 \w0
\wx001D

//@@@WARNING ENABLE 100

// Test tile at current position
1458 * 23	 02 04 1C // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0027 01 01 // part 00/01 - shed A
\wx0027 05 05 // part 02/03 - shed C
\wx0028 09 09 // part 04/05 - unloader
\wx0029 // part 06/07 - empty or vehicle

// Callback 14

// Test tile at current position
1459 * 23	 02 04 10 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx8000 01 01 // part 00/01 - shed A
\wx8000 05 05 // part 02/03 - shed C
\wx8002 09 09 // part 04/05 - unloader
\wx8004 // part 06/07 - empty or vehicle

// Callback 24

// For length > 3
// Sheds - unless its N or S end
1460 * 16	 02 04 05 // ID
81 10 // platform info and relative position
80 0F 00 03 // position along platform from N mod 3
01
\wx8002 02 02 // valuables shed C
\wx8000 // valuables shed A

// Unloader - unless its N or S end
1461 * 16	 02 04 06 // ID
81 10 // platform info and relative position
80 0F 00 03 // position along platform from N mod 3
01
\wx8004 02 02 // valuables unloader
\wx8006 // empty

1462 * 14	 02 04 09 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
01
\wx0005 00 00 // sheds
\wx0006 // else (1 or 2) - unloader

1463 * 14	 02 04 0A // ID
81 10 // platform info and relative position
0C 0F // platform number from S
01
\wx0005 00 00 // southern platform - sheds
\wx0009 // else

1464 * 14	 02 04 07 // ID
81 10 // platform info and relative position
00 0F // position along platform from N
01
\wx8002 00 00 // northern end - shed C
\wx000A // else

1465 * 14	 02 04 08 // ID
81 10 // platform info and relative position
04 0F // position along platform from S
01
\wx8002 00 00 // southern end - shed C
\wx0007 // else

1466 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx0010 14 14 // sprite layout
\wx001C // real sprites

// For purchase list
1467 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx8006 14 14 // sprite layout
\wx0008 24 24 // station layout
\wx0001 // real sprites

1468 * 10	 03 04
01 07
01
FF \wx0003 // purchase
\wx0002

1469 * 4	 01 04 01 14
1470 images/newwater2.pcx 2 1 09 26 21 -17 -13 // 042D x, tanks south end
1471 images/newwater2.pcx 162 1 09 26 21 -2 -13 // 042E y, tanks south end
1472 images/newwater2.pcx 27 1 09 31 31 -27 -13 // 042F x, tanks mid type 1
1473 images/newwater2.pcx 187 1 09 31 31 -2 -13 // 0430 y, tanks mid type 1
1474 images/newwater2.pcx 62 1 09 31 31 -27 -13 // 0431 x, tanks mid type 2
1475 images/newwater2.pcx 222 1 09 31 31 -2 -13 // 0432 y, tanks mid type 2
1476 images/newwater2.pcx 122 1 09 23 36 -29 -5 // 0433 x, solar panel
1477 images/newwater2.pcx 282 1 09 23 36 -5 -5 // 0434 y, solar panel
1478 images/newwater2.pcx 97 1 09 26 21 -27 -8 // 0435 x, tanks north end
1479 images/newwater2.pcx 257 1 09 26 21 8 -8 // 0436 y, tanks north end

1480 images/newwater2.pcx 2 43 09 20 11 -6 -11 // 0437 x, pipes south end
1481 images/newwater2.pcx 144 43 09 20 11 -3 -11 // 0438 y, pipes south end
1482 images/newwater2.pcx 21 43 01 29 32 -27 -11 // 0439 x, pipes mid type 1
1483 images/newwater2.pcx 159 43 01 29 32 -3 -11 // 043A y, pipes mid type 1
1484 images/newwater2.pcx 57 43 01 26 32 -27 -11 // 043B x, pipes mid type 2
1485 images/newwater2.pcx 195 43 01 26 32 -3 -11 // 043C y, pipes mid type 2
1486 images/newwater2.pcx 108 43 01 28 32 -27 -14 // 043D x, pipes mid type 3
1487 images/newwater2.pcx 247 43 01 28 32 -3 -13 // 044E y, pipes mid type 3
1488 images/newwater2.pcx 93 43 09 15 12 -27 0 // 043F x, pipes north end
1489 images/newwater2.pcx 231 43 09 15 12 17 0 // 0440 y, pipes north end

1490 * 7	 02 04 00 // ID
00 01
\w0

1491 * 4	 01 04 01 02
// Purchase list
1492 images/purchaseicons.pcx 19 291 09 62 64 -31 -31 // 042D x
1493 images/purchaseicons.pcx 91 291 09 62 64 -31 -31 // 042E y

1494 * 7	 02 04 0A // ID
00 01
\w0

1495 * 146	 00 04 05 01 08
08 "ISRA"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0002 // back platform
00 00 00 // x/y/z offset
10 05 16 // x/y/z extent
06 // register
\dx80008437 \wx0003 // front platform
00 0B 00 // x/y/z offset
10 05 16 // x/y/z extent
03 06 // registers

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842E \wx0002 // back platform
00 00 00 // x/y/z offset
05 10 16 // x/y/z extent
06 // register
\dx80008438 \wx0003 // front platform
0B 00 00 // x/y/z offset
05 10 16 // x/y/z extent
03 06 // registers

// 02 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 03 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout
0D 01 // only allow platform lengths > 1
11 FF // pylon placement (all)

// Test variable 10 for real sprites
1496 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx0000 // water station sprites

1497 * 23	 02 04 04 // ID
80
00 // don't re-randomise
10 // use bits 16 to 18
08
\wx8002
\wx8004
\wx8002
\wx8004
\wx8006
\wx8002
\wx8004
\wx8006

1498 * 18	 02 04 01 // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0004 08 05 08 05 // water station to S - get random mid tile
\wx8000 // south tile

1499 * 18	 02 04 03 // ID
85 68 0F // station info param 0/-1; check tile along platform to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0001 08 05 08 05 // water station to N
\wx8008 // north tile

// Hide front platform pipes when no continuation is possible
1500 * 18	 02 04 06 // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8001 08 05 08 05 // water station to S - show pipes
\wx8000 // single tile - hide pipes

1501 * 18	 02 04 07 // ID
85 68 0F // station info param 0/-1; check tile along platform to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8001 08 05 08 05 // water station to N - show pipes
\wx0006 // north tile

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

1502 * 51	 02 04 15 // ID
85
7E 03 // get sprite offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 07 // get show/hide flag for front platform pipes
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

1503 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
1504 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx000A // real sprites

1505 * 10	 03 04
01 08
01
FF \wx0021 // purchase
\wx0020
1506 * 4	 01 04 02 02
// Purchase list
1507 images/purchaseicons.pcx 19 22 09 51 64 -31 -20 // 042D x
1508 images/purchaseicons.pcx 91 22 09 51 64 -31 -20 // 042E y
1509 images/purchaseicons.pcx 163 22 09 51 64 -31 -20 // 042F x
1510 images/purchaseicons.pcx 235 22 09 51 64 -31 -20 // 0430 y

1511 * 7	 02 04 01 // ID
00 01
\w0

1512 * 7	 02 04 02 // ID
00 01
\w1

// Purchase list real sprites
1513 * 17	 02 04 00 // ID
85 00 // current date
00 \wxFFFF
01
\wx0001 \w0 \w01/01/1960 // before 1960 - crates
\wx0002 // containers

1514 * 518	 00 04 0A 01 09
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) - container/crate platforms
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842D \wx0000 // containers/crates back
00 00 03 // x/y/z offset
10 04 11 // x/y/z extent
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842E \wx0000 // containers/crates front
00 0C 03 // x/y/z offset
10 04 11 // x/y/z extent

// 01 (y) - container/crate platforms
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000842F \wx0000 // containers/crates back
00 00 03 // x/y/z offset
04 10 11 // x/y/z extent
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80008430 \wx0000 // containers/crates front
0C 00 03 // x/y/z offset
04 10 11 // x/y/z extent

// 02 (x) - tower crane platforms
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000 // back platform with crane base
00 00 00 // x/y/z offset
10 05 10 // x/y/z extent
\dx80000431 \wx0002 // crane top
04 00 11 // x/y/z offset
0A 0A 06 // x/y/z extent
10 // register
\dx8000042E \wx0000 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent

// 03 (y) - tower crane platforms
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842F \wx0000 // back platform with crane base
00 00 00 // x/y/z offset
05 10 10 // x/y/z extent
\dx80000438 \wx0002 // crane top
00 04 11 // x/y/z offset
0A 0A 06 // x/y/z extent
10 // register
\dx80000430 \wx0000 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent

// 04 (x) - office or shed
45
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80008437 \wx0002 // office
00 00 03 // x/y/z offset
10 05 09 // x/y/z extent
08 // register
\dx80000449 \wx0003 // office snow
00 00 80 // x/y/z offset
03 08 // registers
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842D \wx0002 // lamp posts and sign
00 0C 03 // x/y/z offset
10 04 0D // x/y/z extent
09 // register

// 05 (y) - office or shed
45
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80008438 \wx0002 // office
00 00 03 // x/y/z offset
05 10 09 // x/y/z extent
08 // register
\dx8000044A \wx0003 // office snow
00 00 80 // x/y/z offset
03 08 // registers
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000842E \wx0002 // lamp posts and sign
0C 00 03 // x/y/z offset
04 10 0D // x/y/z extent
09 // register

// 06 (x) - train shed
44
\dx000003F4 \wx0000 // ground sprite - track
\dx80000431 \wx0000 // shed back part
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent
\dx8000842D \wx0002 // shed front
00 00 00 // x/y/z offset
10 10 1C // x/y/z extent
0A // register
\dx80000435 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // registers
\dx80000433 \wx0001 // door
0B 1B 80 // x/y/z offset
02 // register

// 07 (y) - train shed
44
\dx000003F3 \wx0000 // ground sprite - track
\dx80000432 \wx0000 // shed back part
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent
\dx8000842E \wx0002 // shed front
00 00 00 // x/y/z offset
10 10 1C // x/y/z extent
0A // register
\dx80000436 \wx0001 // shed snow
01 00 80 // x/y/z offset
03 // registers
\dx80000434 \wx0001 // door
2A 1B 80 // x/y/z offset
02 // register

// 08 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

10 \w600 // set little / lots threshold

14 CC // wires (disable tile types 2 and 6)
11 33 // pylon placement (tile types 0 and 4)

12 \dxC0003824 // cargo types for randomisation triggers

16 \wx0113 // animation info 20 frames looping
17 04 // animation speed 2^4 ticks per frame
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

// Real sprites

// Office real sprites
1515 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00EE // office sprites

// Cargo platform real sprites
1516 * 17	 02 04 21 // ID
85 FA
00 \wxFFFF
01
\wx00DA \w0 \w01/01/1960 // before 1960 - crate sprites
\wx00DC // container sprites

// Cargo platform real sprites - empty
1517 * 17	 02 04 22 // ID
85 FA
00 \wxFFFF
01
\wx00D9 \w0 \w01/01/1960 // before 1960 - crate sprites
\wx00DB // container sprites

1518 * 14	 02 04 1D // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx0021

//Empty
1519 * 14	 02 04 10 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx0022

// Office or shed
1520 * 11	 02 04 1C // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx800A

// Office or shed front platform
1521 * 11	 02 04 1B // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8004

// Train shed
1522 * 11	 02 04 0D // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8002

//@@WARNING DISABLE 100

// Tower crane platform
1523 * 23	 02 04 16 // ID
85
7E B8 // get crane animation offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx00EF \w0 \w0
\wx00EF

// Office/shed platform
1524 * 45	 02 04 17 // ID
85
7E 1C // get office/shed offset
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E 1B // get front platform offset
20 \wx00FF
\2sto 1A
00 \wx0009 // store in register
01
\wx0023 \w0 \w0
\wx0023

// Train shed
1525 * 45	 02 04 18 // ID
85
7E 0D // get train shed variety offset
20 \wx00FF
\2sto 1A
20 \wx000A // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BC // get door show/hide flag
20 \wx00FF
\2sto 1A
00 \wx0002 // store in register
01
\wx00EC \w0 \w0
\wx00EC

//@@WARNING ENABLE 100

// Test tile at current position
1526 * 23	 02 04 1A // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx001D 01 01 // part 00/01 - cargo platforms
\wx0016 05 05 // part 02/03 - tower crane
\wx0017 09 09 // part 04/05 - office
\wx0018 // part 06/07 - train shed

// Test tile at current position - empty
1527 * 23	 02 04 1E // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0010 01 01 // part 00/01 - cargo platforms - empty
\wx0016 05 05 // part 02/03 - tower crane
\wx0017 09 09 // part 04/05 - office
\wx0018 // part 06/07 - train shed

// Callback 14

// Test tile at current position for sprite layout
1528 * 23	 02 04 20 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx8000 01 01 // part 00/01 - cargo platforms
\wx8002 05 05 // part 02/03 - tower crane
\wx8004 09 09 // part 04/05 - office
\wx8006 // part 06/07 - train shed

// Callback 140 - Animation control

// Tower crane
// Animation start/stop control
1529 * 18	 02 04 26 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD // do nothing

// Test tile at current position for animated tile
1530 * 15	 02 04 1B // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
01
\wx0026 05 05 // part 02/03 - tower crane
\wx80FD // do nothing

// Callback 24

// Platform 0
1531 * 18	 02 04 05 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
02
\wx8002 01 01 // tower crane
\wx8006 03 06 // train shed
\wx8000 // cargo platforms

// Platform 1
1532 * 22	 02 04 06 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8004 00 00 // office
\wx8002 04 04 // tower crane
\wx8004 06 06 // office
\wx8000 // cargo platforms

// Platform 2
1533 * 14	 02 04 07 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
01
\wx8006 03 06 // train shed
\wx8000 // cargo platforms

// Platform 3
1534 * 26	 02 04 08 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
04
\wx8004 00 00 // office
\wx8002 02 02 // tower crane
\wx8004 04 04 // office
\wx8002 05 05 // tower crane
\wx8000 // cargo platforms

1535 * 22	 02 04 09 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
03
\wx0005 00 00
\wx0006 01 01
\wx0007 02 02
\wx0008

1536 * 23	 02 04 02 // ID
85 0C // callback
00 FF FF
02
\wx0020 \wx0014 \wx0014 // sprite layout
\wx001B \wx0140 \wx0140 // animation control
\wx001A // real sprites

// Purchase list
1537 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout
\wx0009 24 24 // station layout
\wx0000 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
1538 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E
\wx001E

//@@WARNING ENABLE 113

// Only re-randomise cargo platforms
1539 * 15	 02 04 0A // ID
81 68 00 // station info param 0/0 - check this tile
0A 0F
01
\wx000B 01 01 // part 0/1 - cargo platforms
\wx001E // else

// No suitable cargo
1540 * 23	 02 04 04 // ID
85 0C // callback
00 FF FF
02
\wx0020 \wx0014 \wx0014 // sprite layout
\wx001B \wx0140 \wx0140 // animation control
\wx000A // real sprites

1541 * 70	 03 04
01 09
15
02 \wx0002 // mail
05 \wx0002 // goods
0B \wx0002 // paper
0C \wx0002 // food
0D \wx0002 // fruit
1E \wx0002 // fish
1F \wx0002 // wool
20 \wx0002 // glass
21 \wx0002 // ceramics
22 \wx0002 // bricks
23 \wx0002 // vehicles
2A \wx0002 // building materials
2B \wx0002 // engineering supplies
2D \wx0002 // farm supplies
30 \wx0002 // manufacturing supplies
31 \wx0002 // recyclables
32 \wx0002 // scrap metal
37 \wx0002 // sugar
38 \wx0002 // coffee
3B \wx0002 // vehicle parts
FF \wx0003 // purchase list
\wx0004 // no suitable cargo
1542 * 4	 01 04 02 02
// Purchase list
1543 images/purchaseicons.pcx 19 527 09 58 64 -31 -27 // 042D x
1544 images/purchaseicons.pcx 91 527 09 54 64 -31 -23 // 042E y
1545 images/purchaseicons.pcx 163 527 09 62 64 -31 -31 // 042F x
1546 images/purchaseicons.pcx 235 527 09 62 64 -31 -31 // 0430 y

1547 * 7	 02 04 01 // ID
00 01
\w0

1548 * 7	 02 04 02 // ID
00 01
\w1

// Purchase list real sprites
1549 * 17	 02 04 00 // ID
85 00 // current date
00 \wxFFFF
01
\wx0001 \w0 \w01/01/1960 // before 1960 - crates
\wx0002 // containers

1550 * 654	 00 04 0A 01 0A
08 "ISRA"

// Sprite layout
1A 0E
// 00 (x) - container/crate platforms
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
05 // value for variable 10
\dx8000842D \wx0000 // containers/crates back
00 00 03 // x/y/z offset
10 04 11 // x/y/z extent
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
05 // value for variable 10
\dx8000842E \wx0000 // containers/crates front
00 0C 03 // x/y/z offset
10 04 11 // x/y/z extent

// 01 (y) - container/crate platforms
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
05 // value for variable 10
\dx8000842F \wx0000 // containers/crates back
00 00 03 // x/y/z offset
04 10 11 // x/y/z extent
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
05 // value for variable 10
\dx80008430 \wx0000 // containers/crates front
0C 00 03 // x/y/z offset
04 10 11 // x/y/z extent

// 02 (x) - tower crane platforms
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000 // back platform with crane base
00 00 00 // x/y/z offset
10 05 10 // x/y/z extent
\dx80000431 \wx0002 // crane top
04 00 11 // x/y/z offset
0A 0A 06 // x/y/z extent
10 // register
\dx8000042E \wx0000 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent

// 03 (y) - tower crane platforms
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842F \wx0000 // back platform with crane base
00 00 00 // x/y/z offset
05 10 10 // x/y/z extent
\dx80000438 \wx0002 // crane top
00 04 11 // x/y/z offset
0A 0A 06 // x/y/z extent
10 // register
\dx80000430 \wx0000 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent

// 04 (x) - platform with forklift
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
05 // value for variable 10
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
05 // value for variable 10
\dx8000842D \wx0002 // forklift
05 01 03 // x/y/z offset
06 02 09 // x/y/z extent
0D // register

// 05 (y) - platform with forklift
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
05 // value for variable 10
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
05 // value for variable 10
\dx8000842F \wx0002 // forklift
01 05 03 // x/y/z offset
02 06 09 // x/y/z extent
0D // register

// 06 (x) - platform with shed
45
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
05 // value for variable 10
\dx80008441 \wx0000 // shed
00 00 03 // x/y/z offset
10 05 0D // x/y/z extent
\dx80000453 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // register
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
05 // value for variable 10
\dx80000431 \wx0000 // lamp posts
00 0C 03 // x/y/z offset
10 04 0B // x/y/z extent

// 07 (y) - platform with shed
45
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
05 // value for variable 10
\dx80008442 \wx0000 // shed
00 00 03 // x/y/z offset
05 10 0D // x/y/z extent
\dx80000454 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // register
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
05 // value for variable 10
\dx80000432 \wx0000 // lamp posts
0C 00 03 // x/y/z offset
04 10 0B // x/y/z extent

// 08 (x) - crossing with forklift
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0042 // ground overlay sprite (child)
00 00 80 // x/y/z offset
0A // register
04 // value for variable 10
\dx8000842F \wx0003 // forklift
08 0B 00 // x/y/z offset
03 05 09 // x/y/z extent
02 0D // register

// 09 (y) - crossing with forklift
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0042 // ground overlay sprite (child)
00 00 80 // x/y/z offset
0A // register
04 // value for variable 10
\dx8000842D \wx0003 // forklift
0B 08 00 // x/y/z offset
05 03 09 // x/y/z extent
02 0D // register

// 0A (x) - ramp
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
06 // value for variable 10
\dx8000042D \wx0002 // ramp back
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
0E // register
\dx8000042D \wx0002 // ramp front
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
0E // register

// 0B (y) - ramp
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
06 // value for variable 10
\dx8000042F \wx0002 // ramp back
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
0E // register
\dx8000042F \wx0002 // ramp front
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
0E // register

// 0C (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 0D (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

10 \w600 // set little / lots threshold

14 0C // wires (disable tile type 2)
11 F3 // pylon placement (tile types 0, 4 and 6)

12 \dxC0003824 // cargo types for randomisation triggers

16 \wx0113 // animation info 20 frames looping
17 04 // animation speed 2^4 ticks per frame
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

// Real sprites

// Cargo platform real sprites
1551 * 17	 02 04 23 // ID
85 FA
00 \wxFFFF
01
\wx00DA \w0 \w01/01/1960 // before 1960 - crate sprites
\wx00DC // container sprites

// Cargo platform real sprites - empty
1552 * 17	 02 04 24 // ID
85 FA
00 \wxFFFF
01
\wx00D9 \w0 \w01/01/1960 // before 1960 - crate sprites
\wx00DB // container sprites

// Test variable 10 for real sprites - cargo
1553 * 14	 02 04 1D // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 05 05 // high platform sprites
\wx0023

// Test variable 10 for real sprites - cargo empty
1554 * 14	 02 04 1E // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 05 05 // high platform sprites
\wx0024

// Test variable 10 for real sprites - forklift
1555 * 14	 02 04 2C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 05 05 // high platform sprites
\wx00D1 // forklift sprites

// Test variable 10 for real sprites - shed
1556 * 14	 02 04 2D // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 05 05 // high platform sprites
\wx00EE // shed sprites

// Test variable 10 for real sprites - crossing
1557 * 14	 02 04 2E // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00F6 04 04 // crossing overlay sprites
\wx00D1 // forklift sprites

// Test variable 10 for real sprites - ramp
1558 * 14	 02 04 2F // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 06 06 // low platform overlay sprites
\wx00F7 // ramp sprites

// Crossing
// Maybe forklift
1559 * 15	 02 04 3D // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx8000
\wx8001
\wx8000
\wx8000

// Offset for forklift type
1560 * 11	 02 04 3E // ID
80
00 // don't re-randomise
12 // use bit 18
02
\wx8000
\wx8001

//@@WARNING DISABLE 100

// Tower crane platform
1561 * 23	 02 04 16 // ID
85
7E B8 // get crane animation offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx00EF \w0 \w0
\wx00EF

// Platform with forklift
1562 * 23	 02 04 1A // ID
85
7E 3E // get forklift variety offset
20 \wx00FF
\2sto 1A
00 \wx000D // store in register
01
\wx002C \w0 \w0
\wx002C

// Shed
1563 * 23	 02 04 1B // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
00 \wx0003 // store in register - show/hide snow
01
\wx002D \w0 \w0
\wx002D

// Crossing
1564 * 62	 02 04 17 // ID
85
7E BA // get crossing overlay offset
20 \wx00FF
\2sto 1A
20 \wx000A // store in register
\2rst
7E 3D // get random forklift flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E 3E // get forklift variety offset
20 \wx00FF
\2sto 1A
20 \wx000D // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx002E \w0 \w0
\wx002E

// Ramp N
1565 * 39	 02 04 18 // ID
85
1A
20 \wx0001 // offset 1 - N ramp
\2sto 1A
20 \wx000E // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx002F \w0 \w0
\wx002F

// Ramp S
1566 * 39	 02 04 19 // ID
85
1A
20 \wx0000 // offset 0 - S ramp
\2sto 1A
20 \wx000E // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx002F \w0 \w0
\wx002F

//@@WARNING ENABLE 100

// Ramp/crossing
// Test tile to south for crossing
1567 * 18	 02 04 33 // ID
85 68 01 // station info param 0/+1; check tile to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0017 0A 35 0A 35 // crossing
\wx0018 // ramp N

// Test tile to north for crossing
1568 * 18	 02 04 34 // ID
85 68 0F // station info param 0/-1; check tile to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0033 0A 35 0A 35 // crossing
\wx0019 // ramp S

// Shed/forklift
1569 * 11	 02 04 32 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx001A // platform with forklift
\wx001B // shed

// Test tile at current position
1570 * 23	 02 04 35 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx001D 01 01 // part 00/01 - cargo platforms
\wx0016 05 05 // part 02/03 - tower crane
\wx0032 09 09 // part 04/05 - shed or forklift
\wx0034 // part 06/07 - crossing or ramp

// Test tile at current position - empty
1571 * 23	 02 04 31 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx001E 01 01 // part 00/01 - cargo platforms - empty
\wx0016 05 05 // part 02/03 - tower crane
\wx0032 09 09 // part 04/05 - shed or forklift
\wx0034 // part 06/07 - crossing or ramp

// Callback 14

// Ramp/crossing
// Test tile to south for crossing
1572 * 18	 02 04 43 // ID
85 68 01 // station info param 0/+1; check tile to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8008 0A 35 0A 35 // crossing
\wx800A // ramp N

// Test tile to north for crossing
1573 * 18	 02 04 44 // ID
85 68 0F // station info param 0/-1; check tile to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx0043 0A 35 0A 35 // crossing
\wx800A // ramp S

// Shed/forklift
1574 * 11	 02 04 42 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8004 // platform with forklift
\wx8006 // shed

// Test tile at current position for sprite layout
1575 * 23	 02 04 45 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx8000 01 01 // part 00/01 - cargo platforms
\wx8002 05 05 // part 02/03 - tower crane
\wx0042 09 09 // part 04/05 - shed or forklift
\wx0044 // part 06/07 - crossing or ramp

// Callback 140 - Animation control

// Tower crane
// Animation start/stop control
1576 * 18	 02 04 36 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD // do nothing

// Test tile at current position for animated tile
1577 * 15	 02 04 37 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
01
\wx0036 05 05 // part 02/03 - tower crane
\wx80FD // do nothing

// Callback 24

// First crossing tile
1578 * 14	 02 04 0B // ID
81 10 // platform info and relative position
04 0F // position along platform from S
01
\wx8000 00 01 // cargo platforms
\wx8006 // crossing

// Second crossing tile
1579 * 14	 02 04 0C // ID
81 10 // platform info and relative position
04 0F // position along platform from S
01
\wx8000 00 00 // cargo platforms
\wx8006 // crossing

// First crossing tile platform 2
1580 * 18	 02 04 0D // ID
81 10 // platform info and relative position
04 0F // position along platform from S
02
\wx8000 00 00 // cargo platforms
\wx8002 01 01 // tower crane
\wx8006 // crossing

// Platform 0
1581 * 30	 02 04 05 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
05
\wx8004 01 01 // shed or forklift
\wx000D 03 03 // maybe crossing
\wx000C 04 04 // maybe crossing
\wx8006 05 05 // crossing
\wx8002 06 06 // tower crane
\wx0000 // cargo platforms

// Platform 1
1582 * 30	 02 04 06 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
05
\wx8002 02 02 // tower crane
\wx000B 03 03 // maybe crossing
\wx000C 04 04 // maybe crossing
\wx8006 05 05 // crossing
\wx8004 06 06 // shed or forklift
\wx8000 // cargo platforms

// Platform 2
1583 * 30	 02 04 07 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
05
\wx8004 00 00 // shed or forklift
\wx000D 03 03 // maybe crossing
\wx000C 04 04 // maybe crossing
\wx8006 05 05 // crossing
\wx8002 06 06 // tower crane
\wx8000 // cargo platforms

// Platform 3
1584 * 30	 02 04 08 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
05
\wx8002 01 01 // tower crane
\wx000B 03 03 // maybe crossing
\wx000C 04 04 // maybe crossing
\wx8006 05 05 // crossing
\wx8002 07 07 // tower crane
\wx8000 // cargo platforms

1585 * 22	 02 04 09 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
03
\wx0005 00 00
\wx0006 01 01
\wx0007 02 02
\wx0008

1586 * 23	 02 04 02 // ID
85 0C // callback
00 \wxFFFF
02
\wx0045 \wx0014 \wx0014 // sprite layout
\wx0037 \wx0140 \wx0140 // animation control
\wx0035 // real sprites

// Purchase list
1587 * 18	 02 04 0A // ID
81 0C // callback
00 FF
02
\wx800C 14 14 // sprite layout
\wx0009 24 24 // station layout
\wx0000 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
1588 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031
\wx0031

//@@WARNING ENABLE 113

// Only re-randomise cargo platforms
1589 * 15	 02 04 0C // ID
81 68 00 // station info param 0/0 - check this tile
0A 0F
01
\wx000B 01 01 // part 0/1 - cargo platforms
\wx0031 // else

// No suitable cargo
1590 * 23	 02 04 04 // ID
85 0C // callback
00 \wxFFFF
02
\wx0045 \wx0014 \wx0014 // sprite layout
\wx0037 \wx0140 \wx0140 // animation control
\wx000C // real sprites

1591 * 70	 03 04
01 0A
15
02 \wx0002 // mail
05 \wx0002 // goods
0B \wx0002 // paper
0C \wx0002 // food
0D \wx0002 // fruit
1E \wx0002 // fish
1F \wx0002 // wool
20 \wx0002 // glass
21 \wx0002 // ceramics
22 \wx0002 // bricks
23 \wx0002 // vehicles
2A \wx0002 // building materials
2B \wx0002 // engineering supplies
2D \wx0002 // farm supplies
30 \wx0002 // manufacturing supplies
31 \wx0002 // recyclables
32 \wx0002 // scrap metal
37 \wx0002 // sugar
38 \wx0002 // coffee
3B \wx0002 // vehicle parts
FF \wx000A // purchase list
\wx0004 // no suitable cargo
1592 * 378	 00 04 06 01 0B
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) - container/crate platforms
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000 // containers/crates back
00 00 00 // x/y/z offset
10 04 11 // x/y/z extent
\dx8000842E \wx0000 // containers/crates front
00 0C 00 // x/y/z offset
10 04 11 // x/y/z extent

// 01 (y) - container/crate platforms
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0000 // containers/crates back
00 00 00 // x/y/z offset
04 10 11 // x/y/z extent
\dx80008430 \wx0000 // containers/crates front
0C 00 00 // x/y/z offset
04 10 11 // x/y/z extent

// 02 (x) - office
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843D \wx0002 // office
00 00 00 // x/y/z offset
10 05 0E // x/y/z extent
09 // register
\dx8000044F \wx0003 // snow
00 00 80 // x/y/z offset
02 09 // registers

// 03 (y) - office
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843E \wx0002 // office
00 00 00 // x/y/z offset
05 10 0E // x/y/z extent
09 // register
\dx80000450 \wx0003 // snow
00 00 80 // x/y/z offset
02 09 // registers

// 04 (x) - crawler crane or empty platform
42
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0003 // crawler crane
00 0B 00 // x/y/z offset
10 05 2B // x/y/z extent
04 06 // registers

// 05 (y) - crawler crane or empty platform
42
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008430 \wx0003 // crawler crane
0B 00 00 // x/y/z offset
05 10 2B // x/y/z extent
04 06 // registers

// 06 (x) - forklift platform
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0002 // forklift
05 01 00 // x/y/z offset
06 02 09 // x/y/z extent
08 // register
\dx80000433 \wx0003 // cargo (child) - crate
0A 01 80 // x/y/z offset
03 06 // registers

// 07 (y) - forklift platform
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0002 // forklift
01 05 00 // x/y/z offset
02 06 09 // x/y/z extent
08 // register
\dx80000434 \wx0003 // cargo (child) - crate
00 01 80 // x/y/z offset
03 06 // registers

// 08 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback for sprite layout

10 \w600 // set little/lots threshold
12 \dxC0003824 // cargo types for randomisation triggers

11 FF // pylon placement (all)

// Purchase list
1593 * 4	 01 04 02 02
1594 images/purchaseicons.pcx 19 734 01 58 64 -31 -27 // 042D x, crates
1595 images/purchaseicons.pcx 91 734 01 58 64 -31 -27 // 042E y, crates
1596 images/purchaseicons.pcx 163 734 01 58 64 -31 -27 // 042D x, containers
1597 images/purchaseicons.pcx 235 734 01 58 64 -31 -27 // 042E y, containers

1598 * 7	 02 04 00 // ID
00 01
\w0

1599 * 7	 02 04 01 // ID
00 01
\w1

// Purchase list real sprites
1600 * 17	 02 04 02 // ID
85 00 // current date
00 \wxFFFF
01
\wx0000 \w0 \w01/01/1960 // date is before 1960 - crates
\wx0001 // containers

// Real sprites

// Cargo platform real sprites
1601 * 17	 02 04 23 // ID
85 FA
00 FF FF
01
\wx00DA \w0 \w01/01/1960 // before 1960 - crate sprites
\wx00DC // container sprites

// Cargo platform real sprites - empty
1602 * 17	 02 04 24 // ID
85 FA
00 FF FF
01
\wx00D9 \w0 \w01/01/1960 // before 1960 - crate sprites
\wx00DB // container sprites

// Test variable 10 for real sprites - cargo
1603 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx0023

// Test variable 10 for real sprites - cargo empty
1604 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx0024

// Test variable 10 for real sprites - office
1605 * 14	 02 04 2C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00EE // office sprites

// Test variable 10 for real sprites - crawler crane
1606 * 14	 02 04 2D // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00CF // crawler crane sprites

// Test variable 10 for real sprites - forklift
1607 * 14	 02 04 2E // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00D1 // forklift sprites

// Forklift
// Random cargo thresholds
1608 * 15	 02 04 42 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx8000
\wx8019
\wx8032
\wx804B

// Cargo show/hide
1609 * 30	 02 04 43 // ID
85
7D 20 // read register 20 for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
20 \wxFFFF
\2+
7E 42 // add random value
00 \wx00FF
01
\wx8000 \w0 \w100 // hide cargo
\wx8001 // show cargo

// Random forklift variety
1610 * 11	 02 04 44 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

// Random forklift crate variety
1611 * 11	 02 04 45 // ID
80
00 // no more cargo (triggered by random in graphics chain)
11 // use bit 17
02
\wx8000
\wx8002

// Offices
// Office variety
1612 * 11	 02 04 47 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8006

// Crawler crane
// Random crane variety for modern cranes
1613 * 11	 02 04 48 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000 // cc crane
\wx8004 // red/white crane

// Select age related crane variety
1614 * 17	 02 04 49 // ID
85 FA // date station was built
00 \wxFFFF
01
\wx8008 \w0 \w01/01/1950 // before 1950 - steam crane
\wx0048

// Maybe show crane
1615 * 15	 02 04 4A // ID
80
00 // don't re-randomise
12 // use bits 18 and 19
04
\wx8000
\wx8001
\wx8000
\wx8000

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Container/crate platform
1616 * 29	 02 04 21 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// Container/crate platform - empty
1617 * 29	 02 04 26 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001C \w0 \w0
\wx001C

// Office
1618 * 51	 02 04 22 // ID
85
7E 47 // get random office variety offset
20 \wx00FF
\2sto 1A
20 \wx0009 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx002C \w0 \w0
\wx002C

// Crawler crane or empty platform
1619 * 51	 02 04 23 // ID
85
7E 49 // get crane type offset
20 FF 00
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 4A // get random crane visibility flag
20 FF 00
\2sto 1A
20 \wx0004 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx002D \w0 \w0
\wx002D

// Forklift
1620 * 62	 02 04 24 // ID
85
7E 44 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst
7E 45 // get random offset for crate
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 43 // get show/hide flag for crate
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx002E \w0 \w0
\wx002E

// Forklift - no suitable cargo
1621 * 55	 02 04 25 // ID
85
7E 44 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst 1A
20 \w0 // always hide cargo
\2sto 1A
20 \wx0006 // store in register
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx002E \w0 \w0
\wx002E

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

1622 * 23	 02 04 20 // ID
81 68 00 // station info - check this tile
0A 0F
03
\wx0021 01 01 // part 00/01 - container/crate platforms
\wx0022 05 05 // part 02/03 - office
\wx0023 09 09 // part 04/05 - crawler crane (or empty platform)
\wx0024 // part 06/07 - forklift

// No suitable cargo
1623 * 23	 02 04 1F // ID
81 68 00 // station info - check this tile
0A 0F
03
\wx0026 01 01 // part 00/01 - container/crate platforms - empty
\wx0022 05 05 // part 02/03 - office
\wx0023 09 09 // part 04/05 - crawler crane (or empty platform)
\wx0025 // part 06/07 - forklift - no suitable cargo

// Callback 14

1624 * 23	 02 04 10 // ID
81 68 00 // station info - check this tile
0A 0F
03
\wx8000 01 01 // part 00/01 - container/crate platforms
\wx8002 05 05 // part 02/03 - office
\wx8004 09 09 // part 04/05 - crawler crane (or empty platform)
\wx8006 // part 06/07 - forklift

// Callback 24

// Platform 0
1625 * 22	 02 04 31 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8002 01 01 // office
\wx8004 02 02 // crawler crane (or empty platform)
\wx8006 05 05 // forklift
\wx8000 // container/crate platforms

// Platform 1
1626 * 22	 02 04 32 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8004 00 00 // crawler crane (or empty platform)
\wx8006 02 02 // forklift
\wx8004 06 06 // crawler crane (or empty platform)
\wx8000 // container/crate platforms

// Platform 2
1627 * 26	 02 04 33 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
04
\wx8004 00 00 // crawler crane (or empty platform)
\wx8002 02 02 // office
\wx8004 03 03 // crawler crane (or empty platform)
\wx8006 07 07 // forklift
\wx8000 // container/crate platforms

// Platform 3
1628 * 22	 02 04 34 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8006 03 03 // forklift
\wx8002 05 05 // office
\wx8004 06 06 // crawler crane (or empty platform)
\wx8000 // container/crate platforms

1629 * 22	 02 04 35 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
03
\wx0031 00 00
\wx0032 01 01
\wx0033 02 02
\wx0034

// Store cargo id in register 0x20 and check for callback 0x14

// (ID, cargo id)
1630 * 27	 02 04 50 85 1A 20 02 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // mail
1631 * 27	 02 04 51 85 1A 20 05 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // goods
1632 * 27	 02 04 52 85 1A 20 0B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // paper
1633 * 27	 02 04 53 85 1A 20 0C 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // food
1634 * 27	 02 04 54 85 1A 20 0D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // fruit
1635 * 27	 02 04 55 85 1A 20 1E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // fish
1636 * 27	 02 04 56 85 1A 20 1F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // wool
1637 * 27	 02 04 57 85 1A 20 20 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // glass
1638 * 27	 02 04 58 85 1A 20 21 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // ceramics
1639 * 27	 02 04 59 85 1A 20 22 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // bricks
1640 * 27	 02 04 5A 85 1A 20 23 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // vehicles
1641 * 27	 02 04 5B 85 1A 20 2A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // building materials
1642 * 27	 02 04 5C 85 1A 20 2B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // engineering supplies
1643 * 27	 02 04 5D 85 1A 20 2D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // farm supplies
1644 * 27	 02 04 5E 85 1A 20 30 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // manufacturing supplies
1645 * 27	 02 04 5F 85 1A 20 31 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // recyclables
1646 * 27	 02 04 60 85 1A 20 32 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // scrap metal
1647 * 27	 02 04 61 85 1A 20 37 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // sugar
1648 * 27	 02 04 62 85 1A 20 38 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // coffee
1649 * 27	 02 04 63 85 1A 20 3B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx0010 \wx0014 \wx0014 \wx0020 // vehicle parts

// Purchase
1650 * 18	 02 04 08 // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout
\wx0035 24 24 // station layout
\wx0002 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
1651 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F

// Forklifts
// Random action 2 outside callback triggers re-randomisation
1652 * 23	 02 04 0C // ID
80
02 // no more cargo
11 // trigger bits 17 to 19
08
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F

//@@WARNING ENABLE 113

// Only re-randomise bits 17 to 19 for forklift
1653 * 23	 02 04 0D // ID
81 68 00 // station info - check this tile
0A 0F
03
\wx000B 01 01 // part 00/01 - container/crate platforms
\wx001F 05 05 // part 02/03 - office
\wx001F 09 09 // part 04/05 - crawler crane (or empty platform)
\wx000C // part 06/07 - forklift

// No suitable cargo
1654 * 14	 02 04 09 // ID
81 0C // callback
00 FF
01
\wx0010 14 14 // sprite layout
\wx000D // real sprites

1655 * 70	 03 04
01 0B
15
02 \wx0050 // mail
05 \wx0051 // goods
0B \wx0052 // paper
0C \wx0053 // food
0D \wx0054 // fruit
1E \wx0055 // fish
1F \wx0056 // wool
20 \wx0057 // glass
21 \wx0058 // ceramics
22 \wx0059 // bricks
23 \wx005A // vehicles
2A \wx005B // building materials
2B \wx005C // engineering supplies
2D \wx005D // farm supplies
30 \wx005E // manufacturing supplies
31 \wx005F // recyclables
32 \wx0060 // scrap metal
37 \wx0061 // sugar
38 \wx0062 // coffee
3B \wx0063 // vehicle parts
FF \wx0008 // purchase
\wx0009 // no suitable cargo
// Freight station

1656 * 928	 00 04 07 01 0C
08 "ISRA"

// Sprite layout
1A 0C
// 00 (x) - platforms with forklift or hut
46
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000043B \wx0001 // hut
00 00 03 // x/y/z offset
02 03 10 // x/y/z extent
03 // register
\dx80000457 \wx0001 // hut snow
00 00 80 // x/y/z offset
09 // register
\dx80008445 \wx0001 // forklift - back
01 01 03 // x/y/z offset
0E 03 0D // x/y/z extent
04 // register
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80008446 \wx0001 // forklift - front
01 0C 03 // x/y/z offset
0E 03 0D // x/y/z extent
05 // register

// 01 (y) - platforms with forklift or hut
46
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000043C \wx0001 // hut
00 00 03 // x/y/z offset
03 02 10 // x/y/z extent
03 // register
\dx80000458 \wx0001 // hut snow
00 00 80 // x/y/z offset
09 // register
\dx80008447 \wx0001 // forklift - back
01 01 03 // x/y/z offset
03 0E 0D // x/y/z extent
04 // register
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80008448 \wx0001 // forklift - front
0C 01 03 // x/y/z offset
03 0E 0D // x/y/z extent
05 // register

// 02 (x) - platforms with buildings
48
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042D \wx0001 // back platform building
00 00 03 // x/y/z offset
10 04 13 // x/y/z extent
01 // register
\dx80000441 \wx0002 // back platform building overlay
01 11 80 // x/y/z offset
06 // register
\dx80000449 \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000431 \wx0003 // front platform building
00 0C 03 // x/y/z offset
10 04 13 // x/y/z extent
02 07 // register
\dx8000843D \wx0003 // front platform building overlay
0A 04 80 // x/y/z offset
0C 08 // register
\dx8000044D \wx0003 // front platform building snow
00 00 80 // x/y/z offset
09 07 // registers

// 03 (y) - platforms with buildings
48
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000042F \wx0001 // back platform building
00 00 03 // x/y/z offset
04 10 13 // x/y/z extent
01 // register
\dx80000443 \wx0002 // back platform building overlay
04 11 80 // x/y/z offset
06 // register
\dx8000044B \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000433 \wx0003 // front platform building
0C 00 03 // x/y/z offset
04 10 13 // x/y/z extent
02 07 // register
\dx8000843F \wx0003 // front platform building overlay
02 04 80 // x/y/z offset
0C 08 // register
\dx8000044F \wx0003 // front platform building snow
00 00 80 // x/y/z offset
09 07 // registers

// 04 (x) - platforms with clock tower building
45
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042E \wx0000 // back platform building
00 00 03 // x/y/z offset
0F 04 1F // x/y/z extent
\dx8000044A \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx8000842D \wx0042 // flag
08 03 22 // x/y/z offset
01 02 0F // x/y/z extent
0A // register
05 // value for variable 10
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 05 (y) - platforms with clock tower building
45
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000430 \wx0000 // back platform building
00 00 03 // x/y/z offset
04 0F 1F // x/y/z extent
\dx8000044C \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx8000842D \wx0042 // flag
02 09 22 // x/y/z offset
01 02 0F // x/y/z extent
0A // register
05 // value for variable 10
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

// 06 (x) - platforms with buildings and conveyor
4A
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000439 \wx0001 // conveyor N part
00 00 03 // x/y/z offset
10 04 13 // x/y/z extent
00 // register
\dx80000455 \wx0001 // conveyor N part snow
00 00 80 // x/y/z offset
09 // register
\dx8000042D \wx0001 // back platform building
00 00 03 // x/y/z offset
10 04 13 // x/y/z extent
01 // register
\dx80000442 \wx0000 // back platform building overlay
01 11 80 // x/y/z offset
\dx80000449 \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000435 \wx0002 // front platform building/conveyor
00 0C 03 // x/y/z offset
10 04 1D // x/y/z extent
07 // register
\dx8000843D \wx0003 // front platform building overlay
0F 0C 80 // x/y/z offset
0C 08 // registers
\dx80000451 \wx0003 // front platform building/conveyor snow
00 00 80 // x/y/z offset
09 07 // registers

// 07 (y) - platforms with buildings and conveyor
4A
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000043A \wx0001 // conveyor N part
00 00 03 // x/y/z offset
04 10 13 // x/y/z extent
00 // register
\dx80000456 \wx0001 // conveyor N part snow
00 00 80 // x/y/z offset
09 // register
\dx8000042F \wx0001 // back platform building
00 00 03 // x/y/z offset
04 10 13 // x/y/z extent
01 // register
\dx80000444 \wx0000 // back platform building overlay
04 11 80 // x/y/z offset
\dx8000044B \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000436 \wx0002 // front platform building/conveyor
0C 00 03 // x/y/z offset
04 10 1D // x/y/z extent
07 // register
\dx8000843F \wx0003 // front platform building overlay
02 0C 80 // x/y/z offset
0C 08 // register
\dx80000452 \wx0003 // front platform building/conveyor snow
00 00 80 // x/y/z offset
09 07 // registers

// 08 (x) - platforms with office
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000443 \wx0040 // back platform office
00 00 03 // x/y/z offset
10 04 0D // x/y/z extent
06 // value for variable 10
\dx80000455 \wx0041 // back platform office snow
00 00 80 // x/y/z offset
09 // register
06 // value for variable 10
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 09 (y) - platforms with office
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000444 \wx0040 // back platform office
00 00 03 // x/y/z offset
04 10 0D // x/y/z extent
06 // value for variable 10
\dx80000456 \wx0041 // back platform office snow
00 00 80 // x/y/z offset
09 // register
06 // value for variable 10
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

// 0A (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 0B (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

16 \wx0107 // animation info 8 frames looping
17 03 // animation speed 2^3 ticks per frame
18 \wx0001 // animation triggers - build

1657 * 4	 01 04 01 02
// Purchase list
1658 images/purchaseicons.pcx 163 597 9 62 64 -31 -31 // 042D x
1659 images/purchaseicons.pcx 235 597 9 62 64 -31 -31 // 042E y

1660 * 7	 02 04 00 // ID
00 01
\w0

// Callback 140

// Test for 4th tile along platform
1661 * 14	 02 04 26 // ID
81 41 // platform info and position
00 0F // position along platform
01
\wx80FE 03 03 // clock tower - start animation
\wx80FD // do nothing

1662 * 14	 02 04 25 // ID
81 41 // platform info and position
08 0F // platform number
01
\wx0026 00 00 // platform 0
\wx80FD // do nothing

1663 * 15	 02 04 20 // ID
81 68 00 // station info param 0/0 - check this tile
0C 03 // shift and mask 2 bits for station part type
01
\wx0025 01 01 // part 02/03 - building
\wx80FD // do nothing

// Animation control start
1664 * 14	 02 04 21 // ID
81 18 // extra callback info - reason for call
00 FF
01
\wx0020 00 00 // build station
\wx80FD // do nothing

// Real sprites

// Test variable 10 for real sprites
1665 * 22	 02 04 3B // ID
81 10 // additional information for sprite selection
00 0F
03
\wx00FC 04 04 // platform sprites
\wx00D3 05 05 // flag
\wx00EE 06 06 // office
\wx00D0 // else

// Buildings
// Back building visibility
1666 * 15	 02 04 2E // ID
80
00 // don't re-randomise
12 // use bits 18 an 19
04
\wx8000
\wx8000
\wx8001
\wx8000

// Back building visibility
1667 * 14	 02 04 29 // ID
81 41 // platform info and position
0C 0F // platform number from S
01
\wx002E 00 00 // if last platform S, maybe show N building
\wx8001 // else

// Test for platform 0
1668 * 14	 02 04 28 // ID
81 41 // platform info and position
08 0F // platform number
01
\wx8001 00 00 // platform 0 - show N building
\wx0029 // else

// Random building overlay offset
1669 * 11	 02 04 2C // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

// Front building visibility
1670 * 14	 02 04 2F // ID
81 41 // platform info and position
0C 0F // platform number from S
01
\wx8001 00 00 // if last platform S, show S building
\wx8000 // else

// Test for platform 0
1671 * 14	 02 04 2A // ID
81 41 // platform info and position
08 0F // platform number
01
\wx8000 00 00 // platform 0 - hide S building
\wx002F // else

// Front building variety
1672 * 15	 02 04 2B // ID
80
00 // don't re-randomise
11 // use bits 17 and 18
04
\wx8000
\wx8001
\wx8000
\wx8000

// Platforms
// Random forklifts back
1673 * 39	 02 04 23 // ID
80
00 // don't re-randomise
10 // use bits 16+
10
\wx8000
\wx8000
\wx8000
\wx8000
\wx8000
\wx8001
\wx8000
\wx8000
\wx8000
\wx8000
\wx8000
\wx8000
\wx8000
\wx8000
\wx8000
\wx8000

// Random forklifts front
1674 * 23	 02 04 24 // ID
80
00 // don't re-randomise
10 // use bits 16+
08
\wx8000
\wx8001
\wx8000
\wx8000
\wx8000
\wx8000
\wx8000
\wx8000

// Random hut
1675 * 15	 02 04 27 // ID
80
00 // don't re-randomise
10 // use bits 16+
04
\wx8001
\wx8000
\wx8000
\wx8000

// Check for building to N along platform
1676 * 18	 02 04 22 // ID
85 68 0F // station info param 0/-1; check tile to N along platform
00 FF 3F // mask 14 bits for all tile info
01
\wx0027 0C 15 0C 15 // part #02/03, this station & dir.
\wx8000 // else

// Conveyor
// Returns:
//    0 - buildings on both platforms with conveyor between then
//    1 - building on front platform with conveyor to N
//    2 - building on back platform with conveyor to S

1677 * 18	 02 04 35 // ID
81 41 // platform info and position
08 03 // platform number (mod 4)
02
\wx8002 00 00
\wx8002 02 02
\wx8001 // else (1 or 3)

1678 * 18	 02 04 34 // ID
81 41 // platform info and position
08 03 // platform number (mod 4)
02
\wx8002 00 00
\wx8001 01 01
\wx8000 // else (3)

1679 * 18	 02 04 33 // ID
81 41 // platform info and position
08 03 // platform number (mod 4)
02
\wx8000 00 01
\wx8002 02 02
\wx8001 // else (3)

1680 * 18	 02 04 32 // ID
81 41 // platform info and position
08 03 // platform number (mod 4)
02
\wx8002 01 01
\wx8001 02 02
\wx8000 // else (0 or 3)

// Random arrangement 4 platforms wide
1681 * 15	 02 04 31 // ID
80
00 // don't re-randomise
00 // use bits 0+ (same for whole station)
04 // 4 sets to choose from
\wx0032
\wx0033
\wx0034
\wx0035

1682 * 18	 02 04 38 // ID
81 41 // platform info and position
08 03 // platform number (mod 4)
02
\wx8002 00 00
\wx8001 01 01
\wx8000 // else (2)

1683 * 18	 02 04 37 // ID
81 41 // platform info and position
08 03 // platform number (mod 4)
02
\wx8000 00 00
\wx8002 01 01
\wx8001 // else (2)

// Random arrangement 3 platforms wide
1684 * 11	 02 04 36 // ID
80
00 // don't re-randomise
00 // use bits 0+ (same for whole station)
02 // 2 sets to choose from
\wx0037
\wx0038

1685 * 14	 02 04 3A // ID
81 41 // platform info and position
08 03 // platform number (mod 4)
01
\wx8002 00 00
\wx8001 // else (1)

// Random arrangement 2 platforms wide
1686 * 11	 02 04 39 // ID
80
00 // don't re-randomise
00 // use bits 0+ (same for whole station)
02 // 4 sets to choose from
\wx003A
\wx8000

1687 * 22	 02 04 30 // ID
81 41 // platform info and position
14 0F // number of platforms
03
\wx8000 01 01
\wx0039 02 02
\wx0036 03 03
\wx0031 // else (4 or more platforms)

//@@WARNING DISABLE 100

// Platform with hut or forklift
1688 * 56	 02 04 16 // ID
85
7E 22 // get hut visibility
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0009 // store in register - show/hide snow
\2rst
7E 23 // get back forklift visibility
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst
7E 24 // get front forklift visibility
20 \wx00FF
\2sto 1A
00 \wx0005 // store in register
01
\wx003B \w0 \w0
\wx003B

// Platform with buildings
1689 * 89	 02 04 17 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0009 // store in register - show/hide snow
\2rst
7E 28 // get back building visibility
20 \wx00FF
\2sto 1A
20 \wx0001 // store in register
\2rst
7E 2C // get back building overlay offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 2A // get front building visibility
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E 2B // get front building offset
20 \wx00FF
\2sto 1A
20 \wx0007 // store in register
\2rst
7E B3 // get front building overlay visibility
20 \wx00FF
\2sto 1A
20 \wx000C // store in register
\2rst
7E 2C // get front building overlay offset
20 \wx00FF
\2sto 1A
00 \wx0008 // store in register
01
\wx003B \w0 \w0
\wx003B

// Platform with clock tower building
1690 * 33	 02 04 18 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0009 // store in register - show/hide snow
\2rst
4A // animation frame
20 \wx00FF
\2sto 1A
00 \wx000A // store in register - flag offset
01
\wx003B \w0 \w0
\wx003B

// Platform with conveyor
1691 * 97	 02 04 19 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0009 // store in register - show/hide snow
\2rst
7E 30 // get back conveyor/building type
20 \wx00FF
\2sto 1A
20 \wx0020 // store in register for later use
\2& 1A // use AND to mask
20 \wx0001 // mask bit 0
\2sto 1A
20 \wx0000 // store in register - conveyor N part visibility
\2^ 1A // use XOR to invert
20 \wx0001 // invert bit 0
\2sto 1A
20 \wx0001 // store in register - N building visibility
\2rst
7D 20 // read back conveyor/building type from register
20 \wx0002 // check bit 1 (offset is 0 or 2)
\2sto 1A
20 \wx0007 // store in register - front building/conveyor offset
\2u>> 1A // shift right
20 \wx0001 // shift by 1 bit to divide by 2
\2^ 1A // use XOR to invert
20 \wx0001 // invert bit 0
\2& 7E B3 // get front building overlay visibility
20 \wx0001
\2sto 1A
20 \wx000C // store in register - front building overlay visibility
\2rst
7E 2C // get front building overlay offset
20 \wx00FF
\2sto 1A
00 \wx0008 // store in register
01
\wx003B \w0 \w0
\wx003B

// Office
1692 * 23	 02 04 1B // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
00 \wx0009 // store in register - show/hide snow
01
\wx003B \w0 \w0
\wx003B

//@@WARNING ENABLE 100

// Check for clock tower building position
// Platform 0 - Test for 4th tile along platform
1693 * 14	 02 04 26 // ID
81 41 // platform info and position
00 0F // position along platform from N
01
\wx0018 03 03 // clock tower
\wx0017 // else

// Test for platform 0
1694 * 14	 02 04 25 // ID
81 41 // platform info and position
08 0F // platform number
01
\wx0026 00 00 // platform 0
\wx0017 // else

1695 * 23	 02 04 1A // ID
81 68 00 // station info param 0/0 - check this tile
0C 03 // shift and mask 2 bits for station part type
03
\wx0016 00 00 // part 00/01 - platform
\wx0025 01 01 // part 02/03 - building
\wx0019 02 02 // part 04/05 - conveyor
\wx001B // part 06/07 - office

// Callback 14

// Check for clock tower building position
// Platform 0 - Test for 4th tile along platform
1696 * 14	 02 04 42 // ID
81 41 // platform info and position
00 0F // position along platform from N
01
\wx8004 03 03 // clock tower
\wx8002 // else

// Test for platform 0
1697 * 14	 02 04 41 // ID
81 41 // platform info and position
08 0F // platform number
01
\wx0042 00 00 // platform 0
\wx8002 // else

1698 * 23	 02 04 40 // ID
81 68 00 // station info param 0/0 - check this tile
0C 03 // shift and mask 2 bits for station part type
03
\wx8000 00 00 // part 00/01 - platform
\wx0041 01 01 // part 02/03 - building
\wx8006 02 02 // part 04/05 - conveyor
\wx8008 // part 06/07 - office

// Callback 24

// Platform 0
1699 * 14	 02 04 0C // ID
81 10 // platform info and position
04 0F // position along platform from S
01
\wx8000 00 00 // platform
\wx8002 // building

1700 * 20	 02 04 0B // ID
81 10 // platform info and position
80 0F 00 06 // position along platform from N mod 6
02
\wx8004 01 01 // conveyor
\wx000C 02 04 // building (maybe)
\wx8000 // platform

// Platform 1, 2 and 3
1701 * 16	 02 04 15 // ID
81 10 // platform info and position
80 0F 00 06 // position along platform from N mod 6
01
\wx8006 04 04 // office
\wx8000 // platform

1702 * 16	 02 04 12 // ID
81 10 // platform info and position
80 0F 00 06 // position along platform from N mod 6
01
\wx8006 02 02 // office
\wx8000 // platform

1703 * 18	 02 04 0D // ID
81 10 // platform info and position
08 03 // platform number from N mod 4
02
\wx0015 01 01 // platform 1
\wx0012 02 02 // platform 2
\wx8000 // else

1704 * 14	 02 04 0E // ID
81 10 // platform info and position
0C 0F // platform number from S
01
\wx8002 00 00 // building
\wx000D // platform

1705 * 20	 02 04 0A // ID
81 10 // platform info and position
80 0F 00 06 // position along platform from N mod 6
02
\wx8004 01 01 // conveyor
\wx000E 02 04 // building (maybe)
\wx8000 // platform

// For short platforms (<3 long)
1706 * 14	 02 04 14 // ID
81 10 // platform info and position
00 0F // position along platform from N
01
\wx8006 00 00 // office
\wx8000 // platform

1707 * 14	 02 04 07 // ID
81 10 // platform info and position
08 03 // platform number from N mod 4
01
\wx0014 00 00 // platform 0
\wx8000 // platform

1708 * 14	 02 04 09 // ID
81 10 // platform info and position
08 03 // platform number from N mod 4
01
\wx000B 00 00 // platform 0
\wx000A // else

1709 * 14	 02 04 08 // ID
81 10 // platform info and position
10 0F // platform length
01
\wx0007 01 02 // lengths 1 to 2
\wx0009 // else

1710 * 23	 02 04 02 // ID
85 0C // callback
00 FF FF
02
\wx0040 \wx0014 \wx0014 // sprite layout
\wx0021 \wx0140 \wx0140 // animation control
\wx001A // real sprites

// For purchase list
1711 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx800A 14 14 // sprite layout
\wx0008 24 24 // station layout
\wx0000 // real sprites

1712 * 10	 03 04
01 0C
01
FF \wx0003 // purchase list
\wx0002
// Heavy Freight Station

1713 * 528	 00 04 09 01 0D
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) - crane on rails
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0000 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
\dx8000042E \wx0000 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
\dx80000431 \wx0013 // crane back
00 00 03 // x/y/z offset
0C 05 28 // x/y/z extent
01 0A 11 12 // registers - show, sprite offset, x, y
\dx8000043C \wx0013 // crane front
00 0B 03 // x/y/z offset
0C 05 28 // x/y/z extent
01 0A 11 12 // registers - show, sprite offset, x, y

// 01 (y) - crane on rails
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0000 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
\dx80000430 \wx0000 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
\dx80000447 \wx0013 // crane back
00 00 03 // x/y/z offset
05 0C 28 // x/y/z extent
01 0A 12 11 // registers - show, sprite offset, x, y
\dx80000452 \wx0013 // crane front
0B 00 03 // x/y/z offset
05 0C 28 // x/y/z extent
01 0A 12 11 // registers - show, sprite offset, x, y

// 02 (x) - platform
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0001 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
06 // register
\dx8000042E \wx0001 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
07 // register

// 03 (y) - platform
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0001 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
06 // register
\dx80000430 \wx0001 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
07 // register

// 04 (x) - ramp
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0001 // back ramp N
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
02 // register
\dx8000042E \wx0001 // front ramp N
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
03 // register
\dx8000042D \wx0001 // back ramp S
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // register
\dx8000042D \wx0001 // front ramp S
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
05 // register

// 05 (y) - ramp
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000430 \wx0001 // back ramp N
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
02 // register
\dx80000430 \wx0001 // front ramp N
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
03 // register
\dx8000042F \wx0001 // back ramp S
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // register
\dx8000042F \wx0001 // front ramp S
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
05 // register

// 06 (x) - office
44
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843D \wx0002 // office
00 00 00 // x/y/z offset
10 05 0E // x/y/z extent
09 // register
\dx8000044F \wx0003 // snow
00 00 80 // x/y/z offset
08 09 // registers
\dx8000842F \wx0000 // front platform fence
03 0D 00 // x/y/z offset
0A 01 05 // x/y/z extent

// 07 (y) - office
44
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843E \wx0002 // office
00 00 00 // x/y/z offset
05 10 0E // x/y/z extent
09 // register
\dx80000450 \wx0003 // snow
00 00 80 // x/y/z offset
08 09 // registers
\dx80008430 \wx0000 // front platform fence
0D 03 00 // x/y/z offset
01 0A 05 // x/y/z extent

// 08 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 06 // use callback to determine layout and animation frame

0D 01 // disallow platform length 1
14 03 // wires (not on crane tiles)
11 FC // pylon placement (not on crane tiles)

16 \wx01E1 // animation info 226 frames looping
17 04 // animation speed 2^4 ticks per frame (~400ms)
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

1714 * 4	 01 04 01 02
// Purchase list
1715 images/purchaseicons.pcx 19 800 9 62 64 -31 -31 // 042D x
1716 images/purchaseicons.pcx 91 800 9 62 64 -31 -31 // 042E y

1717 * 7	 02 04 00 // ID
00 01
\w0

// Get number of non-animated tiles to north (non_anim_N)
1718 * 27	 02 04 35 // ID
81
1A
20 10
\2- // subtract position from N from 0x10 to negate the low nibble
41 // platform info and relative position
20 0F // position along platform from north
\2&
1A
20 0F // mask for low nibble
\2rst
7B 68 // station info of nearby tile using position as parameter
0A 0F
01
\wx8001 09 09 // ramp
\wx8000

// Get number of non-animated tiles to south (non_anim_S)
1719 * 19	 02 04 33 // ID
81
41 // platform info and relative position
24 0F // position along platform from south
\2rst
7B 68 // station info of nearby tile using position as parameter
0A 0F
01
\wx8001 09 09 // ramp
\wx8000

// Callback 141 - Next animation frame

// Calculate new frame for reverse movement - south tile of animation
1720 * 14	 02 04 42 // ID
81 1A // all bits on
20 \b225 // max_frame
\2-
4A // animation frame
00 FF
00 // return new_frame = max_frame - frame
\wx8000

// Animation frame control - determine point to reverse direction
// {max_frame = (plat_length - non_anim_N - non_anim_S - 1) * 16}
1721 * 40	 02 04 43 // ID
81 41 // platform info and position
30 0F // platform length
\2-
7E 35 // subtract number of non-animated tiles to N
20 0F
\2-
7D 26 // subtract number of non-animated tiles to S (using register)
20 0F
\2< // result = min(val1, val2)
1A // all bits on
20 \b7 // result is capped at max 7
\2-
1A
20 \b1 // val - 1

1A // all bits on
20 \b4 // val * 16 - gives max frame for this platform length
\2-
4A // animation frame
00 FF // subtract animation frame from max frame
01
\wx0042 00 00 // if animation frame = max frame, set new frame
\wx80FE // continue animation

// Next animation frame
1722 * 28	 02 04 41 // ID
81
7E 33 // get number of non-animated tiles to south
20 0F
\2sto 1A
20 26 // store in register to prevent calculating non_anim_S multiple times
\2rst
41 // platform info and position
24 0F // position along platform from south
\2-
7D 26 // subtract number of non-animated tiles to S (using register)
00 0F
01
\wx0043 00 00 // if south tile of animation
\wx80FE // continue animation

// Callback 140 - Animation control

// Animation start/stop control
1723 * 18	 02 04 20 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD // do nothing

1724 * 15	 02 04 21 // ID
81 68 00 // station info: check this tile
0C 03 // shift and mask 2 bits for station part type
01
\wx0020 00 00 // crane
\wx80FD // do nothing

// Real sprites

// Platforms
// Test variable 10 for real sprites
1725 * 14	 02 04 3B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00FC // platform sprites

// Ramps
// Test variable 10 for real sprites
1726 * 14	 02 04 3C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00F7 // ramp sprites

// Office
// Test variable 10 for real sprites
1727 * 14	 02 04 3D // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00EE // office sprites

// Determine register values

// Crane

// frame     : current frame of animation (0 to 225)
// a_frame   : adjusted frame number for direction change (0 to 112, 112 to 0)
// t_frame   : frame number for tile (0 to 27), crane is hidden in first and last positions

// Frames
// frame:       0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...
// t_frame t0: 14 15 16 17 18 19 20 21 22 23 24 25 26 27
//         t1:        0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
//         t2:                                                        0  1  2  3  4  5  6  7  8  9 10 11 12...

// t1 sprite offset:     0  0  1  1  2  2  3  3  4  4  5  5  5  5  5  5  6  6  7  7  8  8  9  9 10 10
// t1 visible:        0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  0
// t1 x offset:          5  4  5  4  5  4  5  4  5  4  5  4  3  2  1  0  1  0  1  0  1  0  1  0  1  0

// Get animation frame for south tile of animation
1728 * 20	 02 04 47 // ID
81 41 // platform info and position
24 0F // position along platform from south
\2-
7D 26 // subtract number of non-animated tiles to S (using register)
20 FF
\2rst
7B 66 // animation frame of nearby tile using position from south as parameter
00 FF
00 // return frame
\wx8000

// Calculate a_frame for reverse movement
1729 * 15	 02 04 46 // ID
81 1A // all bits on
20 \b225 // max_frame
\2-
7D 25 // read register for frame from position
00 FF
00 // return a_frame = max_frame - frame
\wx8000

// Return a_frame for forward movement
1730 * 11	 02 04 48 // ID
81
7D 25 // read register for frame from position
00 FF
00 // return a_frame = frame
\wx8000

// Select movement direction
1731 * 19	 02 04 40 // ID
81 7E 47 // animation frame
20 FF
\2sto 1A
00 25 // store in register to prevent multiple calls to frame of nearby tile
01
\wx0048 \b0 \b112 // frames 0 to 112
\wx0046 // frames 113 to max

// Calculate t_frame {t_frame = a_frame + 14 - ((p_pos - non_anim_S) * 16)}
1732 * 45	 02 04 4A // ID
81
41 // platform info, get position along platform (from S)
24 0F
\2-
7D 26 // subtract number of non-animated tiles to S (using register)
20 0F

1A
20 \b4 // val * 16
\2sto
1A
20 23 // store in register
\2rst
7E 40 // get a_frame
20 FF
\2+
1A // all bits on
20 \b14 // val + 14
\2-
7D 23 // read register
20 FF // subtract 16 * (p_pos - non_anim_S)
\2> // result = max(val1, val2)
1A // all bits on
20 \b0 // result is capped at min 0
\2< // result = min(val1, val2)
1A // all bits on
00 \b27 // result is capped at max 27
00 // return t_frame
\wx8000

// Select sprite offset
1733 * 55	 02 04 61 // ID
81 7E 4A // t_frame (0 to 14)
20 FF
\2sto 1A
00 21 // store in register to prevent calculating t_frame multiple times
0A
\wx8000 \b1 \b2
\wx8001 \b3 \b4
\wx8002 \b5 \b6
\wx8003 \b7 \b8
\wx8004 \b9 \b10
\wx8006 \b17 \b18
\wx8007 \b19 \b20
\wx8008 \b21 \b22
\wx8009 \b23 \b24
\wx800A \b25 \b26
\wx8005

// Check for animated tile
1734 * 28	 02 04 60 // ID
81
7E 33 // get number of non-animated tiles to south
20 0F
\2sto 1A
20 26 // store in register to prevent calculating non_anim_S multiple times
\2rst
41 // platform info and position
24 0F // position along platform from south
\2-
7D 26 // subtract number of non-animated tiles to S (using register)
00 0F
01
\wx0061 00 06 // if valid animation tile
\wx8000 // else

// Hide sprite
1735 * 15	 02 04 63 // ID
81 7D 21 // read register for t_frame
00 FF
01
\wx8001 \b1 \b26 // t_frame 1 to 26 - show
\wx8000 // hide

// Check for animated tile
1736 * 19	 02 04 62 // ID
81 41 // platform info and position
24 0F // position along platform from south
\2-
7D 26 // subtract number of non-animated tiles to S (using register)
00 0F
01
\wx0063 00 06 // if valid animation tile
\wx8000 // hide

// Select sprite position x offset
1737 * 91	 02 04 65 // ID
81 7D 21 // read register for t_frame
00 FF
\b20
\wx8005 \b1 \b1
\wx8004 \b2 \b2
\wx8005 \b3 \b3
\wx8004 \b4 \b4
\wx8005 \b5 \b5
\wx8004 \b6 \b6
\wx8005 \b7 \b7
\wx8004 \b8 \b8
\wx8005 \b9 \b9
\wx8004 \b10 \b10
\wx8005 \b11 \b11
\wx8004 \b12 \b12
\wx8003 \b13 \b13
\wx8002 \b14 \b14
\wx8001 \b15 \b15
\wx8001 \b17 \b17
\wx8001 \b19 \b19
\wx8001 \b21 \b21
\wx8001 \b23 \b23
\wx8001 \b25 \b25
\wx8000

// Check for animated tile
1738 * 19	 02 04 64 // ID
81 41 // platform info and position
24 0F // position along platform from south
\2-
7D 26 // subtract number of non-animated tiles to S (using register)
00 0F
01
\wx0065 00 06 // if valid animation tile
\wx8000 // else

// Platforms
1739 * 14	 02 04 29 // ID
81 41 // platform info and position
08 03 // platform number from N mod 4
01
\wx8001 01 01 // platform 1 - single sided back platform
\wx8000 // single sided front platform

// Ramps
// North or south
1740 * 14	 02 04 2D // ID
81 41 // platform info and position
04 0F // position along platform from S
01
\wx8002 00 00 // south
\wx8000 // north

// Ramp back
1741 * 14	 02 04 2B // ID
81 41 // platform info and position
00 0F // position along platform from N
01
\wx8000 00 00 // no back ramp on north most tile
\wx8001 // show back ramp

1742 * 18	 02 04 2A // ID
81 41 // platform info and position
08 03 // platform number from N mod 4
02
\wx002B 01 01 // platform 1 - maybe back ramp
\wx8000 02 02 // platform 2 - no back ramp
\wx8001 // show back ramp

// Ramp front
1743 * 14	 02 04 2C // ID
81 41 // platform info and position
08 03 // platform number from N mod 4
01
\wx8000 01 01 // platform 1 - no front ramp
\wx8002 // show front ramp

// Offices
// Office variety
1744 * 11	 02 04 27 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8006

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Crane on rails
1745 * 55	 02 04 15 // ID
85 7E 60 // get crane sprite offset
20 \wx7FFF
\2sto 1A
20 \wx000A // store in register - sprite offset
\2rst
7E 62 // get crane show/hide
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E 64 // get crane position offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - move x offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0012 // store in register - move y offset
01
\wx00CC \w0 \w0
\wx00CC

// Platform
1746 * 50	 02 04 16 // ID
85 7E 29 // get N/S bit
20 \wx0001
\2sto 1A
20 \wx0006 // store in register
\2^ 1A // use XOR to invert
20 \wx0001 // invert bit 0
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx003B \w0 \w0
\wx003B

// Ramp
1747 * 96	 02 04 17 // ID
85 7E 2C // get front ramp
20 \wx000F
\2+
7E 2A // add back ramp
20 \wx000F

7E 2D // shift left 2 bits if S ramp
20 \wx000F
\2sto 1A
20 \wx0020 // store in register
\2rst
7D 20 // read register for show/hide bits
20 \wx0001 // shift and mask for bit 0
\2sto 1A
20 \wx0002 // store in register - back ramp S show/hide
\2rst
7D 20 // read register for show/hide bits
21 \wx0001 // shift and mask for bit 1
\2sto 1A
20 \wx0003 // store in register - back ramp S show/hide
\2rst
7D 20 // read register for show/hide bits
22 \wx0001 // shift and mask for bit 2
\2sto 1A
20 \wx0004 // store in register - back ramp S show/hide
\2rst
7D 20 // read register for show/hide bits
23 \wx0001 // shift and mask for bit 3
\2sto 1A
20 \wx0005 // store in register - front ramp S show/hide
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx003C \w0 \w0
\wx003C

// Office
1748 * 51	 02 04 18 // ID
85 7E 27 // get random office variety offset
20 \wx00FF
\2sto 1A
20 \wx0009 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx003D \w0 \w0
\wx003D

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

1749 * 23	 02 04 1A // ID
81 68 00 // station info: check this tile
0C 03 // shift and mask 2 bits for station part type
03
\wx0015 00 00 // crane
\wx0016 01 01 // platform
\wx0017 02 02 // ramp
\wx0018 // office

// Callback 14 - Sprite layout

1750 * 23	 02 04 30 // ID
81 68 00 // station info: check this tile
0C 03 // shift and mask 2 bits for station part type
03
\wx8000 00 00 // crane
\wx8002 01 01 // platform
\wx8004 02 02 // ramp
\wx8006 // office

// Callback 24 - Station layout

// Crane on rails
1751 * 14	 02 04 0C // ID
81 10 // platform info and position
00 0F // position along platform from N
01
\wx8004 00 00 // ramp
\wx8000 // crane on rails

// Single sided front platform
1752 * 14	 02 04 0D // ID
81 10 // platform info and position
00 0F // position along platform from N
01
\wx8004 00 00 // ramp
\wx8002 // front platform

// Single sided back platform with office
1753 * 22	 02 04 0A // ID
81 10 // platform info and position
00 0F // position along platform from N
03
\wx8004 00 00 // ramp
\wx8006 01 01 // office
\wx8004 02 02 // ramp
\wx8002 // back platform

1754 * 18	 02 04 0E // ID
81 10 // platform info and position
08 03 // platform number from N mod 4
02
\wx000A 01 01 // platform 1 - single sided back platform with office
\wx000D 02 02 // platform 2 - single sided front platform
\wx000C // crane on rails

1755 * 14	 02 04 08 // ID
81 10 // platform info and position
04 0F // position along platform from S
01
\wx8004 00 00 // ramp
\wx000E

1756 * 29	 02 04 02 // ID
85 0C // callback
00 \wxFFFF
03
\wx0030 \wx0014 \wx0014 // sprite layout
\wx0021 \wx0140 \wx0140 // animation control
\wx0041 \wx0141 \wx0141 // animation frame
\wx001A // real sprites

// Purchase list
1757 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout
\wx0008 24 24 // station layout
\wx0000 // real sprites

1758 * 10	 03 04
01 0D
01
FF \wx0003 // purchase list
\wx0002
// Overhead crane animation

// frame     : current frame of animation (0 to 237)
// a_frame   : adjusted frame number for direction change (0 to 118, 118 to 0)
// t_frame   : frame number for tile (0 to 23), crane is hidden in first and last positions

// frame:       0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...
// t_frame t0: 10 11 12 13 14 15 16 17 18 19 20 21 22 23
//         t1:                    0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
//         t2:                                                                    0  1  2  3  4  5  6  7  8...

// t1 sprite offset:                 0  0  1  1  2  2  3  3  3  3  3  3  3  3  3  3  4  4  5  5  6  6
// t1 visible:                    0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  0
// t1 x offset:                      9  8  9  8  9  8  9  8  7  6  5  4  3  2  1  0  1  0  1  0  1  0

// Get animation frame of south tile
1759 * 15	 02 04 0A // ID
81 41 // platform info and relative position
24 0F // position along platform from south
\2rst
7B 66 // animation frame of nearby tile using position from south as parameter
00 FF
00 // return frame
\wx8000

// Calculate a_frame for reverse movement
1760 * 15	 02 04 70 // ID
81 1A // always -1
20 \b237 // max_frame
\2-
7D 25 // read register for frame of south tile
00 FF
00 // return a_frame = max_frame - frame
\wx8000

// Return a_frame for forward movement
1761 * 11	 02 04 71 // ID
81
7D 25 // read register for frame of south tile
00 FF
00 // return a_frame = frame
\wx8000

// Select movement direction
1762 * 19	 02 04 72 // ID
81 7E 0A // animation frame - south tile
20 FF
\2sto 1A
00 25 // store in register to prevent multiple calls to frame of nearby tile
01
\wx0071 \b0 \b118 // frames 0 to 118
\wx0070 // frames 119 to max

// Calculate t_frame {t_frame = a_frame + 10 - (p_pos * 16)}
1763 * 27	 02 04 73 // ID
81 7E 72 // get a_frame
20 FF
\2+
1A // all bits on
20 \b10 // val + 10
\2-
41 // platform info, get position along platform (from S)
20 F0 // shift 0 and mask 4 bits to give p_pos * 16
\2> // result = max(val1, val2)
1A // all bits on
20 \b0 // result is capped at min 0
\2< // result = min(val1, val2)
1A // all bits on
00 \b23 // result is capped at max 23
00 // return t_frame
\wx8000

// Animation start/stop control
1764 * 18	 02 04 78 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD // do nothing

// Calc new frame for reverse movement
1765 * 14	 02 04 08 // ID
81 1A // all bits on
20 \b237 // max_frame
\2-
4A // animation frame
00 FF
00 // return new_frame = max_frame - frame
\wx8000

// Animation frame control - determine point to reverse direction
// {max_frame = ((plat_length - 2) * 16) + 6}
1766 * 34	 02 04 09 // ID
81 41 // platform info and relative position
30 0F // platform length
\2< // result = min(val1, val2)
1A // all bits on
20 \b9 // result is capped at max 9
\2-
1A // all bits on
20 \b2 // val - 2

1A // all bits on
20 \b4 // val * 16
\2+
1A // all bits on
20 \b6 // val + 6 - gives max_frame for this platform length
\2-
4A // animation frame
00 FF // subtract animation frame from max_frame
01
\wx0008 00 00 // if animation frame = max_frame, set new frame
\wx80FE // continue animation

1767 * 14	 02 04 79 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0009 00 00 // if most southerly tile
\wx80FE // continue animation

// Platform 0 - building door animation

// Animation control - maybe start animation
1768 * 14	 02 04 57 // ID
81 10 // extra callback info - random bits
00 01
01
\wx80FE 01 01 // 50% chance of start (from current frame)
\wx80FD // do nothing

// Animation start/stop control - platform 0
1769 * 14	 02 04 59 // ID
81 18 // extra callback info - reason for call
00 FF
01
\wx0057 03 03 // vehicle enters station - maybe start
\wx80FD // do nothing

// Animation frame - maybe stop at closed
1770 * 14	 02 04 56 // ID
81 10 // extra callback info - random bits
00 01
01
\wx80FF 01 01 // 50% chance of stop
\wx8000

// Animation frame - maybe stop at open
1771 * 14	 02 04 54 // ID
81 10 // extra callback info - random bits
00 03
01
\wx80FF 01 01 // 25% chance of stop
\wx80FE // continue

// Animation frame - platform 0
1772 * 26	 02 04 55 // ID
81 4A // animation frame
00 FF
04
\wx0054 \b3 \b3 // maybe stop
\wx0054 \b7 \b7 // maybe stop
\wx0054 \b11 \b11 // maybe stop
\wx0056 \b15 \b15 // maybe stop
\wx80FE // continue

// Callback 141 - Next animation frame

1773 * 14	 02 04 5D // ID
81 41 // platform info and relative position
08 0F // platform number from north
01
\wx0055 00 00 // if platform 0
\wx0079

1774 * 14	 02 04 5A // ID
81 41 // platform info and relative position
14 0F // total number of platforms
01
\wx0079 01 01 // 1 platform
\wx005D

// Callback 140 - Animation control

1775 * 14	 02 04 5C // ID
81 41 // platform info and relative position
08 0F // platform number from north
01
\wx0059 00 00 // platform 0
\wx0078

1776 * 14	 02 04 5B // ID
81 41 // platform info and relative position
14 0F // total number of platforms
01
\wx0078 01 01 // 1 platform
\wx005C

1777 * 568	 00 04 0B 01 0E
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) - crane rails with animated crane and cargo platforms - platform 1
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx80000435 \wx0000 // back platform
00 00 00 // x/y/z offset
10 05 1B // x/y/z extent
\dx8000042D \wx0040 // back cargo (child)
05 15 80 // x/y/z offset
04 // value for variable 10
\dx8000043B \wx0000 // front platform
00 0B 00 // x/y/z offset
10 05 19 // x/y/z extent
\dx8000042F \wx0042 // front cargo (child)
05 0F 80 // x/y/z offset
09 // register - sprite offset for cargo (old or new)
04 // value for variable 10
\dx8000043D \wx0013 // crane
00 02 14 // x/y/z offset
08 0C 0A // x/y/z extent
01 06 11 12 // registers - show, sprite offset, x, y

// 01 (y) - crane rails with animated crane and cargo platforms - platform 1
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx80000436 \wx0000 // back platform
00 00 00 // x/y/z offset
05 10 1B // x/y/z extent
\dx8000042E \wx0040 // back cargo (child)
04 15 80 // x/y/z offset
04 // value for variable 10
\dx8000043C \wx0000 // front platform
0B 00 00 // x/y/z offset
05 10 19 // x/y/z extent
\dx80000430 \wx0042 // front cargo (child)
04 0F 80 // x/y/z offset
09 // register - sprite offset for cargo (old or new)
04 // value for variable 10
\dx80000444 \wx0013 // crane
02 00 14 // x/y/z offset
0C 08 0A // x/y/z extent
01 06 12 11 // registers - show, sprite offset, x, y

// 02 (x) - crane rails with animated crane and cargo platforms - platforms > 1
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx80000437 \wx0000 // back platform
00 00 00 // x/y/z offset
10 05 1B // x/y/z extent
\dx8000042D \wx0040 // back cargo (child)
05 13 80 // x/y/z offset
04 // value for variable 10
\dx8000043B \wx0000 // front platform
00 0B 00 // x/y/z offset
10 05 19 // x/y/z extent
\dx8000042F \wx0042 // front cargo (child)
05 0F 80 // x/y/z offset
09 // register - sprite offset for cargo (old or new)
04 // value for variable 10
\dx8000043D \wx0013 // crane
00 02 14 // x/y/z offset
08 0C 0A // x/y/z extent
01 06 11 12 // registers - show, sprite offset, x, y

// 03 (y) - crane rails with animated crane and cargo platforms - platforms > 1
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx80000438 \wx0000 // back platform
00 00 00 // x/y/z offset
05 10 1B // x/y/z extent
\dx8000042E \wx0040 // back cargo (child)
04 13 80 // x/y/z offset
04 // value for variable 10
\dx8000043C \wx0000 // front platform
0B 00 00 // x/y/z offset
05 10 19 // x/y/z extent
\dx80000430 \wx0042 // front cargo (child)
04 0F 80 // x/y/z offset
09 // register - sprite offset for cargo (old or new)
04 // value for variable 10
\dx80000444 \wx0013 // crane
02 00 14 // x/y/z offset
0C 08 0A // x/y/z extent
01 06 12 11 // registers - show, sprite offset, x, y

// 04 (x) - // crane rails with crane building - north end of platform
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx80000435 \wx0002 // back
00 00 00 // x/y/z offset
10 05 1B // x/y/z extent
05 // register - sprite offset for platform
\dx80008433 \wx0000 // front
00 0A 00 // x/y/z offset
10 06 2C // x/y/z extent
\dx80000439 \wx0001 // building snow
00 00 80 // x/y/z offset
13 // register

// 05 (y) - // crane rails with crane building - north end of platform
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx80000436 \wx0002 // back
00 00 00 // x/y/z offset
05 10 1B // x/y/z extent
05 // register - sprite offset for platform
\dx80008434 \wx0000 // front
0A 00 00 // x/y/z offset
06 10 2C // x/y/z extent
\dx8000043A \wx0001 // building snow
00 00 80 // x/y/z offset
13 // register

// 06 (x) - platform 0 building
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042F \wx0000 // back part
06 00 00 // x/y/z offset
0A 06 11 // x/y/z extent
\dx8000042D \wx0000 // building
00 00 00 // x/y/z offset
10 10 2A // x/y/z extent
\dx80000431 \wx0001 // building snow
00 00 80 // x/y/z offset
13 // register
\dx8000042D \wx0043 // door 1
2A 25 80 // x/y/z offset
02 07 // registers - show, sprite offset
05 // value for variable 10
\dx8000042D \wx0043 // door 2
36 1F 80 // x/y/z offset
03 08 // registers - show, sprite offset
05 // value for variable 10

// 07 (y) - platform 0 building
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx80000430 \wx0000 // back part
00 06 00 // x/y/z offset
06 0A 11 // x/y/z extent
\dx8000042E \wx0000 // building
00 00 00 // x/y/z offset
10 10 2A // x/y/z extent
\dx80000432 \wx0001 // building snow
00 00 80 // x/y/z offset
13 // register
\dx8000042E \wx0043 // door 1
07 1F 80 // x/y/z offset
02 07 // registers - show, sprite offset
05 // value for variable 10
\dx8000042E \wx0043 // door 2
13 25 80 // x/y/z offset
03 08 // registers - show, sprite offset
05 // value for variable 10

// 08 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000842D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000842E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

12 \dx00000200 // cargo types for randomisation triggers (steel)
10 \w400 // set little / lots threshold

11 00 // pylon placement (none)
14 FF // wires (none)

0B 06 // use callback to determine layout and animation frame

// General flags
13 04 // give callback 141 random bits in variable 10

16 \wx01ED // animation info 238 frames looping
17 04 // animation speed 2^4 ticks per frame (~400ms)
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

1778 * 4	 01 04 02 1E
// North platform building and crane building
// Old style
1779 images/newsteelmill3.pcx 2 16 09 65 70 -31 -34 // 042D x, building P0
1780 images/newsteelmill3.pcx 82 16 09 65 70 -37 -34 // 042E y, building P0
1781 images/newsteelmill3.pcx 162 16 09 22 25 -19 -7 // 042F x, building P0 back wall
1782 images/newsteelmill3.pcx 194 16 09 22 25 -4 -7 // 0430 y, building P0 back wall
1783 images/newsteelmill3.pcx 2 88 09 38 70 0 0 // 0431 x, building P0 snow
1784 images/newsteelmill3.pcx 78 88 09 38 70 0 0 // 0432 y, building P0 snow
1785 images/newsteelmill3.pcx 226 16 09 57 43 -29 -36 // 0433 x, crane building
1786 images/newsteelmill3.pcx 274 16 09 57 43 -12 -36 // 0434 y, crane building
1787 images/newsteelmill3.pcx 514 16 01 49 42 -31 -29 // 0435 x, P1 building side with rail back
1788 images/newsteelmill3.pcx 562 16 01 49 42 -9 -29 // 0436 y, P1 building side with rail back
1789 images/newsteelmill3.pcx 323 16 01 44 42 -31 -24 // 0437 x, >=P2 crane rail back
1790 images/newsteelmill3.pcx 370 16 01 44 42 -9 -24 // 0438 y, >=P2 crane rail back
1791 images/newsteelmill3.pcx 154 88 09 20 36 7 0 // 0439 x, crane building snow
1792 images/newsteelmill3.pcx 195 88 09 19 36 0 0 // 043A y, crane building snow
1793 images/newsteelmill3.pcx 418 16 01 42 42 -31 -22 // 043B x, >=P1 crane rail front
1794 images/newsteelmill3.pcx 466 16 01 42 42 -9 -22 // 043C y, >=P1 crane rail front

//@@LET xpos = 265
//@@LET ypos = 88
//@@LET xsize = 42
//@@LET ysize = 25
//@@LET xrel = -16
//@@LET yrel = -9
//@@LET xsizeh = 22
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelhX = (xrel xposh + xpos - 8 -)

1795 images/newsteelmill3.pcx  289 88 01 25 18 -4 -3 // 043D x, crane 1
1796 images/newsteelmill3.pcx  285 88 01 25 22 -4 -5 // 043E x, crane 2
1797 images/newsteelmill3.pcx  281 88 01 25 26 -4 -7 // 043F x, crane 3
1798 images/newsteelmill3.pcx  265 88 01 25 42 -16 -9 // 0440 x, crane 4 - 8 (6 - centre)
1799 images/newsteelmill3.pcx  265 88 01 25 24 -12 -11 // 0441 x, crane 9
1800 images/newsteelmill3.pcx  265 88 01 25 20 -8 -13 // 0442 x, crane 10
1801 images/newsteelmill3.pcx  265 88 01 25 16 -4 -15 // 0443 x, crane 11

//@@LET xpos = 315
//@@LET ypos = 88
//@@LET xsize = 42
//@@LET ysize = 23
//@@LET xrel = -24
//@@LET yrel = -9
//@@LET xsizeh = 20
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 8 -)

1802 images/newsteelmill3.pcx  315 88 01 23 18 -12 -3 // 0444 y, crane 1
1803 images/newsteelmill3.pcx  315 88 01 23 22 -16 -5 // 0445 y, crane 2
1804 images/newsteelmill3.pcx  315 88 01 23 26 -20 -7 // 0446 y, crane 3
1805 images/newsteelmill3.pcx  315 88 01 23 42 -24 -9 // 0447 y, crane 4 - 8 (6 - centre)
1806 images/newsteelmill3.pcx  333 88 01 23 24 -10 -11 // 0448 y, crane 9
1807 images/newsteelmill3.pcx  337 88 01 23 20 -10 -13 // 0449 y, crane 10
1808 images/newsteelmill3.pcx  341 88 01 23 16 -10 -15 // 044A y, crane 11

// New style
1809 images/newsteelmill3.pcx 2 160 09 57 67 -31 -26 // 042D x, building P0
1810 images/newsteelmill3.pcx 79 160 09 57 67 -34 -26 // 042E y, building P0
1811 images/newsteelmill3.pcx 155 160 09 22 25 -19 -7 // 042F x, building P0 back wall
1812 images/newsteelmill3.pcx 187 160 09 22 25 -4 -7 // 0430 y, building P0 back wall
1813 images/newsteelmill3.pcx 2 306 09 30 67 0 0 // 0431 x, building P0 snow
1814 images/newsteelmill3.pcx 78 306 09 30 67 0 0 // 0432 y, building P0 snow
1815 images/newsteelmill3.pcx 2 240 09 57 43 -29 -36 // 0433 x, crane building
1816 images/newsteelmill3.pcx 50 240 09 57 43 -12 -36 // 0434 y, crane building
1817 images/newsteelmill3.pcx 288 240 41 49 42 -31 -29 // 0435 x, P1 crane rail back
1818 images/newsteelmill3.pcx 336 240 41 49 42 -9 -29 // 0436 y, P1 crane rail back
1819 images/newsteelmill3.pcx 99 240 01 44 42 -31 -24 // 0437 x, >=P2 crane rail back
1820 images/newsteelmill3.pcx 146 240 01 44 42 -9 -24 // 0438 y, >=P2 crane rail back
1821 images/newsteelmill3.pcx 154 306 09 20 36 7 0 // 0439 x, crane building snow
1822 images/newsteelmill3.pcx 195 306 09 20 36 0 0 // 043A y, crane building snow
1823 images/newsteelmill3.pcx 192 240 41 44 42 -31 -24 // 043B x, >=P1 crane rail front
1824 images/newsteelmill3.pcx 240 240 41 44 42 -9 -24 // 043C y, >=P1 crane rail front

//@@LET xpos = 239
//@@LET ypos = 306
//@@LET xsize = 31
//@@LET ysize = 21
//@@LET xrel = -10
//@@LET yrel = -6
//@@LET xsizeh = 17
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelhX = (xrel xposh + xpos - 8 -)

1825 images/newsteelmill3.pcx  257 306 01 21 13 -4 0 // 043D x, crane 1
1826 images/newsteelmill3.pcx  253 306 01 21 17 -4 -2 // 043E x, crane 2
1827 images/newsteelmill3.pcx  249 306 01 21 21 -4 -4 // 043F x, crane 3
1828 images/newsteelmill3.pcx  239 306 01 21 31 -10 -6 // 0440 x, crane 4 - 8 (6 - centre)
1829 images/newsteelmill3.pcx  239 306 01 21 18 -6 -8 // 0441 x, crane 9
1830 images/newsteelmill3.pcx  239 306 01 21 14 -2 -10 // 0442 x, crane 10
1831 images/newsteelmill3.pcx  239 306 01 21 10 2 -12 // 0443 x, crane 11

//@@LET xpos = 277
//@@LET ypos = 306
//@@LET xsize = 31
//@@LET ysize = 21
//@@LET xrel = -19
//@@LET yrel = -6
//@@LET xsizeh = 14
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 8 -)

1832 images/newsteelmill3.pcx  277 306 01 21 13 -7 0 // 0444 y, crane 1
1833 images/newsteelmill3.pcx  277 306 01 21 17 -11 -2 // 0445 y, crane 2
1834 images/newsteelmill3.pcx  277 306 01 21 21 -15 -4 // 0446 y, crane 3
1835 images/newsteelmill3.pcx  277 306 01 21 31 -19 -6 // 0447 y, crane 4 - 8 (6 - centre)
1836 images/newsteelmill3.pcx  290 306 01 21 18 -10 -8 // 0448 y, crane 9
1837 images/newsteelmill3.pcx  294 306 01 21 14 -10 -10 // 0449 y, crane 10
1838 images/newsteelmill3.pcx  298 306 01 21 10 -10 -12 // 044A y, crane 11

1839 * 7	 02 04 00 // ID
00 01
\w0

1840 * 7	 02 04 01 // ID
00 01
\w1

1841 * 4	 01 04 04 06
// Empty
1842 images/newsteelmill3.pcx 2 343 01 01 01 0 0 // 042D x, steel back platform
1843 images/newsteelmill3.pcx 2 343 01 01 01 0 0 // 042E y, steel back platform
1844 images/newsteelmill3.pcx 2 343 01 01 01 0 0 // 042F x, steel front platform old
1845 images/newsteelmill3.pcx 2 343 01 01 01 0 0 // 0430 y, steel front platform old
1846 images/newsteelmill3.pcx 2 343 01 01 01 0 0 // 0431 x, steel front platform new
1847 images/newsteelmill3.pcx 2 343 01 01 01 0 0 // 0432 y, steel front platform new
// Cargo level 1
1848 images/newsteelmill3.pcx 2 343 41 24 33 0 0 // 042D x, steel back platform
1849 images/newsteelmill3.pcx 40 343 41 24 33 0 0 // 042E y, steel back platform
1850 images/newsteelmill3.pcx 2 372 41 24 33 0 0 // 042F x, steel front platform old
1851 images/newsteelmill3.pcx 40 372 41 24 33 0 0 // 0430 y, steel front platform old
1852 images/newsteelmill3.pcx 2 401 41 24 33 0 0 // 0431 x, steel front platform new
1853 images/newsteelmill3.pcx 40 401 41 24 33 0 0 // 0432 y, steel front platform new
// Cargo level 2
1854 images/newsteelmill3.pcx 78 343 41 24 33 0 0 // 042D x, steel back platform
1855 images/newsteelmill3.pcx 116 343 41 24 33 0 0 // 042E y, steel back platform
1856 images/newsteelmill3.pcx 78 372 41 24 33 0 0 // 042F x, steel front platform old
1857 images/newsteelmill3.pcx 116 372 41 24 33 0 0 // 0430 y, steel front platform old
1858 images/newsteelmill3.pcx 78 401 41 24 33 0 0 // 0431 x, steel front platform new
1859 images/newsteelmill3.pcx 116 401 41 24 33 0 0 // 0432 y, steel front platform new
// Cargo level 3
1860 images/newsteelmill3.pcx 154 343 41 24 33 0 0 // 042D x, steel back platform
1861 images/newsteelmill3.pcx 192 343 41 24 33 0 0 // 042E y, steel back platform
1862 images/newsteelmill3.pcx 154 372 41 24 33 0 0 // 042F x, steel front platform old
1863 images/newsteelmill3.pcx 192 372 41 24 33 0 0 // 0430 y, steel front platform old
1864 images/newsteelmill3.pcx 154 401 41 24 33 0 0 // 0431 x, steel front platform new
1865 images/newsteelmill3.pcx 192 401 41 24 33 0 0 // 0432 y, steel front platform new

1866 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

1867 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

1868 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

1869 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

1870 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

// Empty
1871 * 7	 02 04 03 // ID
00 01
\w0

1872 * 4	 01 04 01 06
// New style side doors
1873 images/newsteelmill3.pcx 223 160 09 15 6 0 0 // 042D x, building door 1
1874 images/newsteelmill3.pcx 267 160 09 15 6 0 0 // 042E y, building door 1
1875 images/newsteelmill3.pcx 237 160 09 15 6 0 0 // 042F x, building door 2
1876 images/newsteelmill3.pcx 281 160 09 15 6 0 0 // 0430 y, building door 2
1877 images/newsteelmill3.pcx 251 160 09 15 6 0 0 // 0431 x, building door 3
1878 images/newsteelmill3.pcx 295 160 09 15 6 0 0 // 0432 y, building door 3

1879 * 7	 02 04 04 // ID
00 01
\w0

1880 * 4	 01 04 02 02
// Purchase list
1881 images/purchaseicons.pcx 19 361 09 62 64 -31 -31 // 042D x
1882 images/purchaseicons.pcx 91 361 09 62 64 -31 -31 // 042E y
1883 images/purchaseicons.pcx 163 361 09 62 64 -31 -31 // 042F x
1884 images/purchaseicons.pcx 235 361 09 62 64 -31 -31 // 0430 y

1885 * 7	 02 04 0A // ID
00 01
\w0

1886 * 7	 02 04 0B // ID
00 01
\w1

// Real sprites

// North platform building and crane building
1887 * 17	 02 04 06 // ID
85 FA // date station was built
00 \wxFFFF
01
\wx0000 \w0 \w01/01/1980 // old style steel mill sprites
\wx0001 // modern style steel mill sprites

// For purchase list
1888 * 17	 02 04 07 // ID
85 00 // current date
00 \wxFFFF
01
\wx000A \w0 \w01/01/1980 // old style purchase list sprites
\wx000B // modern style purchase list sprites

// Test variable 10 for real sprites
1889 * 18	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
02
\wx0002 04 04 // cargo sprites
\wx0004 05 05 // door sprites
\wx0006 // building sprites

// Test variable 10 for real sprites - empty
1890 * 18	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
02
\wx0003 04 04 // cargo sprites
\wx0004 05 05 // door sprites
\wx0006 // building sprites

// Select back platform type
1891 * 14	 02 04 6A // ID
81 41 // platform info and relative position
08 0F // platform number from north
01
\wx8000 00 01 // if platform 0 or 1
\wx8002

1892 * 14	 02 04 24 // ID
81 41 // platform info and relative position
14 0F // total number of platforms
01
\wx8002 01 01 // if 1 platform
\wx006A

// Select move offset
1893 * 83	 02 04 65 // ID
81
7D 21 // read register 21 for t_frame
00 FF
\b18
\wx8009 \b1 \b1
\wx8008 \b2 \b2
\wx8009 \b3 \b3
\wx8008 \b4 \b4
\wx8009 \b5 \b5
\wx8008 \b6 \b6
\wx8009 \b7 \b7
\wx8008 \b8 \b8
\wx8007 \b9 \b9
\wx8006 \b10 \b10
\wx8005 \b11 \b11
\wx8004 \b12 \b12
\wx8003 \b13 \b13
\wx8002 \b14 \b14
\wx8001 \b15 \b15
\wx8001 \b17 \b17
\wx8001 \b19 \b19
\wx8001 \b21 \b21
\wx8000

// Check for position along platform from south
1894 * 14	 02 04 64 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0065 00 07 // if valid animation tile
\wx8000 // else

// Hide animation sprites
1895 * 15	 02 04 63 // ID
81
7D 21 // read register 21 for t_frame
00 FF
01
\wx8001 \b1 \b22 // t_frame 1 to 22 - show
\wx8000 // hide

// Check for position along platform from south
1896 * 14	 02 04 62 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0063 00 07 // if valid animation tile
\wx8000 // hide

// Select sprite
1897 * 39	 02 04 61 // ID
81 7E 73 // get tile frame (0 to 12)
20 FF
\2sto 1A
00 21 // store in register to prevent calculating t_frame multiple times
06
\wx8000 \b1 \b2
\wx8001 \b3 \b4
\wx8002 \b5 \b6
\wx8004 \b17 \b18
\wx8005 \b19 \b20
\wx8006 \b21 \b22
\wx8003

// Check for end of platform - south
1898 * 14	 02 04 60 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0061 00 07 // if valid animation tile
\wx8000 // else

// Door A animation offset
1899 * 26	 02 04 66 // ID
81
4A // animation frame
00 FF
04
\wx8004 \b0 \b0
\wx8002 \b1 \b1
\wx8002 \b10 \b10
\wx8004 \b11 \b16
\wx8000

// Door A show/hide
1900 * 14	 02 04 6A // ID
81
4A // animation frame
00 FF
01
\wx8000 \b3 \b8
\wx8001

// Door A show/hide
1901 * 17	 02 04 67 // ID
85 FA // date station was built
00 \wxFFFF
01
\wx8000 \w0 \w01/01/1980
\wx006A

// Door B animation offset
1902 * 26	 02 04 68 // ID
81
4A // animation frame
00 FF
04
\wx8004 \b0 \b4
\wx8002 \b5 \b5
\wx8002 \b14 \b14
\wx8004 \b15 \b15
\wx8000

// Door B show/hide
1903 * 14	 02 04 6B // ID
81
4A // animation frame
00 FF
01
\wx8000 \b7 \b12
\wx8001

// Door B show/hide
1904 * 17	 02 04 69 // ID
85 FA // date station was built
00 \wxFFFF
01
\wx8000 \w0 \w01/01/1980
\wx006B

// Cargo front sprite offset
1905 * 17	 02 04 6C // ID
85 FA // date station was built
00 \wxFFFF
01
\wx8000 \w0 \w01/01/1980
\wx8002

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Crane rails with animated crane and cargo platforms
1906 * 83	 02 04 15 // ID
85
7E 60 // get crane sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - sprite offset
\2rst
7E 62 // get crane show/hide
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E 64 // get crane position offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - move x offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0012 // store in register - move y offset
\2rst
7E 6C // get cargo sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0009 // store in register - cargo offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001A \w0 \w0
\wx001A

// Crane rails with animated crane and cargo platforms -empty
1907 * 83	 02 04 18 // ID
85
7E 60 // get crane sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - sprite offset
\2rst
7E 62 // get crane show/hide
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E 64 // get crane position offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - move x offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0012 // store in register - move y offset
\2rst
7E 6C // get cargo sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0009 // store in register - cargo offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Crane rails with crane building - north end of platform
1908 * 51	 02 04 16 // ID
85
7E 24 // get layout type
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - platform sprite offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0013 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001A \w0 \w0
\wx001A

// Platform 0 building
1909 * 84	 02 04 17 // ID
85
7E 67 // get door A show/hide
20 \wx7FFF
\2sto 1A
20 \wx0002 // store in register - show door A
\2rst
7E 66 // get door A sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0007 // store in register - door A sprite offset
\2rst
7E 69 // get door B show/hide
20 \wx7FFF
\2sto 1A
20 \wx0003 // store in register - show door B
\2rst
7E 68 // get door B sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0008 // store in register - door B sprite offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0013 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001A \w0 \w0
\wx001A

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// For crane platform 2 or greater or single platform station
1910 * 14	 02 04 21 // ID
81 41 // platform info and relative position
00 0F // position along platform from north
01
\wx0016 00 00 // crane rails with crane building
\wx0015 // crane rails

// For crane platform 2 or greater or single platform station - empty
1911 * 14	 02 04 29 // ID
81 41 // platform info and relative position
00 0F // position along platform from north
01
\wx0016 00 00 // crane rails with crane building
\wx0018 // crane rails - empty

// For >1 platform
1912 * 14	 02 04 25 // ID
81 41 // platform info and relative position
08 0F // platform number from north
01
\wx0017 00 00 // if platform 0
\wx0021

// For >1 platform - empty
1913 * 14	 02 04 28 // ID
81 41 // platform info and relative position
08 0F // platform number from north
01
\wx0017 00 00 // if platform 0
\wx0029

1914 * 14	 02 04 26 // ID
81 41 // platform info and relative position
14 0F // total number of platforms
01
\wx0021 01 01 // if 1 platform
\wx0025

// Empty
1915 * 14	 02 04 27 // ID
81 41 // platform info and relative position
14 0F // total number of platforms
01
\wx0029 01 01 // if 1 platform
\wx0028

// Callback 14 - Sprite layout

// Select back platform type
1916 * 14	 02 04 23 // ID
81 41 // platform info and relative position
08 0F // platform number from north
01
\wx8000 00 01 // if platform 0 or 1
\wx8002

1917 * 14	 02 04 22 // ID
81 41 // platform info and relative position
14 0F // total number of platforms
01
\wx8002 01 01 // if 1 platform
\wx0023

// For crane platform 2 or greater or single platform station
1918 * 14	 02 04 32 // ID
81 41 // platform info and relative position
00 0F // position along platform from north
01
\wx8004 00 00 // crane rails with crane building
\wx0022 // crane rails

// For >1 platform
1919 * 14	 02 04 31 // ID
81 41 // platform info and relative position
08 0F // platform number from north
01
\wx8006 00 00 // if platform 0
\wx0032

1920 * 14	 02 04 30 // ID
81 41 // platform info and relative position
14 0F // total number of platforms
01
\wx0032 01 01 // if 1 platform
\wx0031

1921 * 29	 02 04 12 // ID
85 0C // callback
00 \wxFFFF
03
\wx0030 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx005A \wx0141 \wx0141 // animation frame
\wx0026 // real sprites

// For purchase list
1922 * 14	 02 04 13 // ID
81 0C // callback
00 FF
01
\wx8008 14 14 // sprite layout
\wx0007

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
1923 * 15	 02 04 09 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx0027
\wx0027
\wx0027
\wx0027

//@@WARNING ENABLE 113

// No suitable cargo
1924 * 29	 02 04 1F // ID
85 0C // callback
00 \wxFFFF
03
\wx0030 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx005A \wx0141 \wx0141 // animation frame
\wx0009 // real sprites

1925 * 13	 03 04
01 0E
02
09 \wx0012 // steel
FF \wx0013 // purchase
\wx001F // no suitable cargo
1926 * 570	 00 04 06 01 0F
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) - paper platforms
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // platform back
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042D \wx0042 // paper back
00 00 03 // x/y/z offset
10 03 0A // x/y/z extent
11 // register
06 // value for variable 10
\dx8000042E \wx0040 // platform front
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042D \wx0043 // paper front
00 0D 03 // x/y/z offset
10 03 0A // x/y/z extent
05 12 // register
06 // value for variable 10

// 01 (y) - paper platforms
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // platform back
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000431 \wx0042 // paper back
00 00 03 // x/y/z offset
03 10 0A // x/y/z extent
11 // register
06 // value for variable 10
\dx80000430 \wx0040 // platform front
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000431 \wx0043 // paper front
0D 00 03 // x/y/z offset
03 10 0A // x/y/z extent
05 12 // register
06 // value for variable 10

// 02 (x) - office
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // platform back
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000445 \wx0000 // office
00 00 03 // x/y/z offset
10 05 0E // x/y/z extent
\dx80000457 \wx0001 // snow
00 00 80 // x/y/z offset
02 // register
\dx8000042E \wx0040 // platform front
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 03 (y) - office
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // platform back
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000446 \wx0000 // office
00 00 03 // x/y/z offset
05 10 0E // x/y/z extent
\dx80000458 \wx0001 // snow
00 00 80 // x/y/z offset
02 // register
\dx80000430 \wx0040 // platform front
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

// 04 (x) - paper shelter
46
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // platform back
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042E \wx0000 // shelter back leg
00 00 03 // x/y/z offset
10 01 0E // x/y/z extent
\dx8000042D \wx0042 // paper back
00 01 03 // x/y/z offset
10 03 0A // x/y/z extent
11 // register
06 // value for variable 10
\dx8000042D \wx0000 // shelter
00 04 03 // x/y/z offset
10 01 16 // x/y/z extent
\dx80000431 \wx0001 // snow
00 00 80 // x/y/z offset
02 // register
\dx8000042E \wx0040 // platform front
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 05 (y) - paper shelter
46
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // platform back
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000430 \wx0000 // shelter back leg
00 00 03 // x/y/z offset
01 10 0E // x/y/z extent
\dx80000431 \wx0042 // paper back
01 00 03 // x/y/z offset
03 10 0A // x/y/z extent
11 // register
06 // value for variable 10
\dx8000042F \wx0000 // shelter
04 00 03 // x/y/z offset
01 10 16 // x/y/z extent
\dx80000432 \wx0001 // snow
00 00 80 // x/y/z offset
02 // register
\dx80000430 \wx0040 // platform front
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

// 06 (x) - forklift platform
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // platform back
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842D \wx0002 // forklift
05 01 03 // x/y/z offset
06 02 09 // x/y/z extent
08 // register
\dx80000431 \wx0001 // paper
0A 01 80 // x/y/z offset
03 // register
\dx8000042E \wx0040 // platform front
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 07 (y) - forklift platform
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // platform back
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000842F \wx0002 // forklift
01 05 03 // x/y/z offset
02 06 09 // x/y/z extent
08 // register
\dx80000432 \wx0001 // paper
00 01 80 // x/y/z offset
03 // register
\dx80000430 \wx0040 // platform front
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

// 08 (x) Purchase
41
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) Purchase
41
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback for sprite layout

10 \w600 // set little/lots threshold
12 \dx00000800 // cargo types for randomisation triggers

11 FF // pylon placement (all)

// Purchase list
1927 * 4	 01 04 01 02
1928 images/purchaseicons.pcx 163 456 01 62 64 -31 -31 // 042D x
1929 images/purchaseicons.pcx 235 456 01 62 64 -31 -31 // 042E y

1930 * 7	 02 04 00 // ID
00 01
00 00

// Real sprites

// Test variable 10 for real sprites - paper platform
1931 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00E4 // paper sprites

// Test variable 10 for real sprites - paper platform - empty
1932 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00E3 // paper sprites - empty

// Test variable 10 for real sprites - office
1933 * 14	 02 04 18 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00EE // office sprites

// Test variable 10 for real sprites - paper shelter
1934 * 18	 02 04 19 // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FC 04 04 // platform sprites
\wx00E4 06 06 // paper sprites
\wx00ED // shelter sprites

// Test variable 10 for real sprites - paper shelter - empty
1935 * 18	 02 04 17 // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FC 04 04 // platform sprites
\wx00E3 06 06 // paper sprites - empty
\wx00ED // shelter sprites

// Test variable 10 for real sprites - forklift
1936 * 14	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00D1 // forklift sprites

// Paper platforms
// Select paper variety back
1937 * 15	 02 04 40 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8003
\wx8000
\wx8001
\wx8002

// Select paper variety front
1938 * 15	 02 04 41 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8000
\wx8001
\wx8002
\wx8003

// Hide cargo on front platform if there is a paper shelter on next platform south
1939 * 18	 02 04 45 // ID
85 68 10 // station info param 1/0 - check tile on next platform to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8000 0F 25 0F 25 // tile is paper shelter
\wx8001 // else

// Forklift
// Random cargo thresholds
1940 * 15	 02 04 42 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx8000
\wx8019
\wx8032
\wx804B

// Cargo show/hide
1941 * 24	 02 04 43 // ID
85
60 0B // cargo waiting - paper
20 \wxFFFF
\2+
7E 42 // add random value
00 \wx00FF
01
\wx8000 \w0 \w100 // hide cargo
\wx8001 // show cargo

// Random forklift variety
1942 * 11	 02 04 44 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Paper platform
1943 * 45	 02 04 21 // ID
85
7E 45 // get show/hide flag for front platform paper
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E 40 // get random paper variety offset
20 \wx00FF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E 41 // get random paper variety offset
20 \wx00FF
\2sto 1A
00 \wx0012 // store in register
01
\wx001B \w0 \w0
\wx001B

// Paper platform - empty
1944 * 32	 02 04 26 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0005 // store in register - paper show/hide flag
\2sto 1A
20 \wx0011 // store in register - paper variety offset
\2sto 1A
00 \wx0012 // store in register - paper variety offset
01
\wx001C \w0 \w0
\wx001C

// Office
1945 * 23	 02 04 22 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
00 \wx0002 // store in register
01
\wx0018 \w0 \w0
\wx0018

// Shelter
1946 * 34	 02 04 23 // ID
85
7E 40 // get random paper variety offset
20 \wx00FF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
00 \wx0002 // store in register
01
\wx0019 \w0 \w0
\wx0019

// Shelter - empty
1947 * 33	 02 04 27 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0011 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
00 \wx0002 // store in register
01
\wx0017 \w0 \w0
\wx0017

// Forklift
1948 * 34	 02 04 24 // ID
85
7E 44 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst
7E 43 // get show/hide flag for paper
20 \wx00FF
\2sto 1A
00 \wx0003 // store in register
01
\wx001A \w0 \w0
\wx001A

// Forklift - no suitable cargo
1949 * 33	 02 04 25 // ID
85
7E 44 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst 1A
20 \w0 // always hide paper
\2sto 1A
00 \wx0003 // store in register
01
\wx001A \w0 \w0
\wx001A

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

1950 * 23	 02 04 20 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0021 01 01 // part 00/01 - paper platforms
\wx0022 05 05 // part 02/03 - office
\wx0023 09 09 // part 04/05 - paper shelter
\wx0024 // else part 06/07 - forklift

// No suitable cargo
1951 * 23	 02 04 1F // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0026 01 01 // part 00/01 - paper platforms
\wx0022 05 05 // part 02/03 - office
\wx0027 09 09 // part 04/05 - paper shelter
\wx0025 // else part 06/07 - forklift

// Callback 14

1952 * 23	 02 04 10 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx8000 01 01 // part 00/01 - paper platforms
\wx8002 05 05 // part 02/03 - office
\wx8004 09 09 // part 04/05 - paper shelter
\wx8006 // else part 06/07 - forklift

// Callback 24

// Platform 0
1953 * 18	 02 04 31 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
02
\wx8002 01 01 // office
\wx8006 03 03 // forklift
\wx8000 // paper platforms

// Platform 1
1954 * 18	 02 04 32 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
02
\wx8004 02 03 // paper shelter
\wx8006 05 05 // forklift
\wx8000 // paper platforms

// Platform 2
1955 * 22	 02 04 33 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8002 02 02 // office
\wx8004 03 04 // paper shelter
\wx8006 07 07 // forklift
\wx8000 // paper platforms

// Platform 3
1956 * 22	 02 04 34 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8006 02 02 // forklift
\wx8002 05 05 // office
\wx8004 06 06 // paper shelter
\wx8000 // paper platforms

1957 * 22	 02 04 35 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
03
\wx0031 00 00
\wx0032 01 01
\wx0033 02 02
\wx0034 // else (3)

1958 * 14	 02 04 07 // ID
81 0C // callback
00 FF
01
\wx0010 14 14 // sprite layout
\wx0020 // real sprites

// Purchase
1959 * 18	 02 04 08 // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout
\wx0035 24 24 // station layout
\wx0000 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
1960 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F

// Forklifts
// Random action 2 outside callback triggers re-randomisation
1961 * 15	 02 04 0C // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx001F
\wx001F
\wx001F
\wx001F

//@@WARNING ENABLE 113

// Only re-randomise bits 18 and 19 for forklift
1962 * 23	 02 04 0D // ID
81 68 00 // station info param 0/0 - check this tile
0A 0F
03
\wx000B 01 01 // part 00/01 - paper platforms
\wx001F 05 05 // part 02/03 - office
\wx000B 09 09 // part 04/05 - paper shelter
\wx000C // else part 06/07 - forklift

// No suitable cargo
1963 * 14	 02 04 09 // ID
81 0C // callback
00 FF
01
\wx0010 14 14 // sprite layout
\wx000D // real sprites

1964 * 13	 03 04
01 0F
02
0B \wx0007 // paper
FF \wx0008 // purchase
\wx0009 // no suitable cargo
1965 * 432	 00 04 06 01 10
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) - fruit platforms
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0006 // fruit back
00 00 00 // x/y/z offset
10 03 0A // x/y/z extent
11 13 // register
\dx8000842D \wx0006 // fruit front
00 0D 00 // x/y/z offset
10 03 0A // x/y/z extent
12 13 // register

// 01 (y) - fruit platforms
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008431 \wx0006 // fruit back
00 00 00 // x/y/z offset
03 10 0A // x/y/z extent
11 13 // register
\dx80008431 \wx0006 // fruit front
0D 00 00 // x/y/z offset
03 10 0A // x/y/z extent
12 13 // register

// 02 (x) - office
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000443 \wx0000 // office
00 00 00 // x/y/z offset
10 05 0E // x/y/z extent
\dx80000455 \wx0001 // snow
00 00 80 // x/y/z offset
02 // register

// 03 (y) - office
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000444 \wx0000 // office
00 00 00 // x/y/z offset
05 10 0E // x/y/z extent
\dx80000456 \wx0001 // snow
00 00 80 // x/y/z offset
02 // register

// 04 (x) - office 2 or empty platform
44
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043D \wx0001 // office
00 00 00 // x/y/z offset
10 05 0E // x/y/z extent
04 // register
\dx8000044F \wx0001 // snow
00 00 80 // x/y/z offset
02 // register
\dx8000842D \wx0047 // fruit front
00 0D 00 // x/y/z offset
10 03 0A // x/y/z extent
04 12 13 // register
05 // value for variable 10

// 05 (y) - office 2 or empty platform
44
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043E \wx0001 // office
00 00 00 // x/y/z offset
05 10 0E // x/y/z extent
04 // register
\dx80000450 \wx0001 // snow
00 00 80 // x/y/z offset
02 // register
\dx80008431 \wx0047 // fruit front
0D 00 00 // x/y/z offset
03 10 0A // x/y/z extent
04 12 13 // register
05 // value for variable 10

// 06 (x) - forklift platform
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0002 // forklift
05 01 00 // x/y/z offset
06 02 09 // x/y/z extent
08 // register
\dx80000433 \wx0003 // cargo
0A 01 80 // x/y/z offset
03 06 // registers

// 07 (y) - forklift platform
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0002 // forklift
01 05 00 // x/y/z offset
02 06 09 // x/y/z extent
08 // register
\dx80000434 \wx0003 // cargo
00 01 80 // x/y/z offset
03 06 // registers

// 08 (x) Purchase
41
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) Purchase
41
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback for sprite layout

10 \w600 // set little/lots threshold
12 \dx00002000 // cargo types for randomisation triggers

11 FF // pylon placement (all)

// Purchase list
1966 * 4	 01 04 01 02
1967 images/purchaseicons.pcx 19 667 01 49 64 -31 -18 // 042D x
1968 images/purchaseicons.pcx 91 667 01 49 64 -31 -18 // 042E y

1969 * 7	 02 04 02 // ID
00 01
\w0

// Real sprites

// Test variable 10 for real sprites - fruit platform
1970 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E2 // fruit sprites

// Test variable 10 for real sprites - fruit platform - empty
1971 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E1 // fruit sprites - empty

// Test variable 10 for real sprites - office
1972 * 14	 02 04 17 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00EE // office sprites

// Test variable 10 for real sprites - office 2 with fruit
1973 * 18	 02 04 18 // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FD 04 04 // ground overlay sprites
\wx00E2 05 05 // fruit sprites
\wx00EE // office sprites

// Test variable 10 for real sprites - office 2 with fruit - empty
1974 * 18	 02 04 19 // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FD 04 04 // ground overlay sprites
\wx00E1 05 05 // fruit sprites - empty
\wx00EE // office sprites

// Test variable 10 for real sprites - forklift
1975 * 14	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00D1 // forklift sprites

// Fruit platforms
// Select fruit variety back
1976 * 15	 02 04 40 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8003
\wx8000
\wx8001
\wx8002

// Select fruit variety front
1977 * 15	 02 04 41 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8000
\wx8001
\wx8002
\wx8003

// Recolour sprite for beans
1978 * 17	 02 04 48 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
00 \w15 // add offset of recolour sprite for beans
00
\w0

// Return recolour sprite for cargo id in register 20
1979 * 15	 02 04 47 // ID
81
7D 20 // read register 20 for this cargo type
00 FF
01
\wx0048 39 39 // beans
\wx8000

// Forklift
// Random cargo thresholds
1980 * 15	 02 04 42 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx8000
\wx8019
\wx8032
\wx804B

// Cargo show/hide
1981 * 30	 02 04 43 // ID
85
7D 20 // read register 20 for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
20 \wxFFFF
\2+
7E 42 // add random value
00 \wx00FF
01
\wx8000 \w0 \w100 // hide cargo
\wx8001 // show cargo

// Random forklift variety
1982 * 11	 02 04 44 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

// Random forklift crate variety
1983 * 11	 02 04 45 // ID
80
00 // don't re-randomise
11 // use bit 17
02
\wx8000
\wx8002

// Office
// Office 2 - platform 0 only
1984 * 14	 02 04 46 // ID
81 41 // platform info and position
08 0F // platform number
01
\wx8001 00 00
\wx8000

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Fruit platform
1985 * 62	 02 04 21 // ID
85
7E 47 // get recolour sprite for this cargo
20 \wx7FFF
\2sto 1A
20 \wx0013 // store in register - recolour sprite
\2rst
7E 40 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E 41 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// Fruit platform - empty
1986 * 49	 02 04 26 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0013 // store in register - recolour sprite
\2sto 1A
20 \wx0011 // store in register - fruit variety offset
\2sto 1A
20 \wx0012 // store in register - fruit variety offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001C \w0 \w0
\wx001C

// Office
1987 * 40	 02 04 22 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0017 \w0 \w0
\wx0017

// Office 2 or empty platform
1988 * 73	 02 04 23 // ID
85
7E 47 // get recolour sprite for this cargo
20 \wx7FFF
\2sto 1A
20 \wx0013 // store in register - recolour sprite
\2rst
7E 41 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E 46 // get office 2 visibility
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0018 \w0 \w0
\wx0018

// Office 2 or empty platform - empty
1989 * 66	 02 04 27 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0013 // store in register - recolour sprite
\2sto 1A
20 \wx0012 // store in register - fruit variety offset
\2rst
7E 46 // get office 2 visibility
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0019 \w0 \w0
\wx0019

// Forklift
1990 * 62	 02 04 24 // ID
85
7E 44 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst
7E 45 // get random offset for crate
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 43 // get show/hide flag for crate
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001A \w0 \w0
\wx001A

// Forklift - no suitable cargo
1991 * 55	 02 04 25 // ID
85
7E 44 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst 1A
20 \w0 // always hide fruit
\2sto 1A
20 \wx0006 // store in register
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001A \w0 \w0
\wx001A

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Fruit or beans
1992 * 23	 02 04 20 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0021 01 01 // part 00/01 - fruit platforms
\wx0022 05 05 // part 02/03 - office
\wx0023 09 09 // part 04/05 - office2 (or empty platform)
\wx0024 // part 06/07 - forklift

// No suitable cargo
1993 * 23	 02 04 1F // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx0026 01 01 // part 00/01 - fruit platforms
\wx0022 05 05 // part 02/03 - office
\wx0027 09 09 // part 04/05 - office2 (or empty platform)
\wx0025 // part 06/07 - forklift

// Callback 14

1994 * 23	 02 04 10 // ID
81 68 00 // station info param 0/0; check this tile
0A 0F
03
\wx8000 01 01 // part 00/01 - fruit platforms
\wx8002 05 05 // part 02/03 - office
\wx8004 09 09 // part 04/05 - office2 (or empty platform)
\wx8006 // part 06/07 - forklift

// Callback 24

// Platform 0
1995 * 22	 02 04 31 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8002 01 01 // office
\wx8004 02 02 // office2 (or empty platform)
\wx8006 03 03 // forklift
\wx8000 // fruit platforms

// Platform 1
1996 * 22	 02 04 32 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8004 00 00 // office2 (or empty platform)
\wx8004 06 06 // office2 (or empty platform)
\wx8006 05 05 // forklift
\wx8000 // fruit platforms

// Platform 2
1997 * 26	 02 04 33 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
04
\wx8004 00 00 // office2 (or empty platform)
\wx8002 02 02 // office
\wx8004 03 03 // office2 (or empty platform)
\wx8006 07 07 // forklift
\wx8000 // fruit platforms

// Platform 3
1998 * 22	 02 04 34 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8006 02 02 // forklift
\wx8002 05 05 // office
\wx8004 06 06 // office2 (or empty platform)
\wx8000 // fruit platforms

1999 * 22	 02 04 35 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
03
\wx0031 00 00
\wx0032 01 01
\wx0033 02 02
\wx0034

// Fruit
2000 * 27	 02 04 07 // ID
85
1A // all bits on
20 \wx000D // cargo id for fruit
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Fruit (and veg)
2001 * 27	 02 04 06 // ID
85
1A // all bits on
20 \wx002E // cargo id for fruit (and veg)
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Beans
2002 * 27	 02 04 0A // ID
85
1A // all bits on
20 \wx0039 // cargo id for beans
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Purchase
2003 * 18	 02 04 08 // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout
\wx0035 24 24 // station layout
\wx0002 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
2004 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F

// Forklifts
// Random action 2 outside callback triggers re-randomisation
2005 * 23	 02 04 0C // ID
80
02 // no more cargo
11 // trigger bits 17 to 19
08
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F

//@@WARNING ENABLE 113

// Only re-randomise bits 17 to 19 for forklift
2006 * 23	 02 04 0D // ID
81 68 00 // station info param 0/0 - check this tile
0A 0F
03
\wx000B 01 01 // part 00/01 - fruit platforms
\wx001F 05 05 // part 02/03 - office
\wx000B 09 09 // part 04/05 - office2 (or empty platform)
\wx000C // part 06/07 - forklift

// No suitable cargo
2007 * 14	 02 04 09 // ID
81 0C // callback
00 FF
01
\wx0010 14 14 // sprite layout
\wx000D // real sprites

2008 * 19	 03 04
01 10
04
0D \wx0007 // fruit
2E \wx0006 // fruit (and veg)
39 \wx000A // beans
FF \wx0008 // purchase
\wx0009 // no suitable cargo
2009 * 396	 00 04 06 01 11
08 "ISRA"

// Sprite layout
1A 0A
// 00 (x) - barrel platforms
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // barrels back
00 00 00 // x/y/z offset
10 04 0A // x/y/z extent
\dx8000042E \wx0000 // barrels front
00 0C 00 // x/y/z offset
10 04 0A // x/y/z extent

// 01 (y) - barrel platforms
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // barrels back
00 00 00 // x/y/z offset
04 10 0A // x/y/z extent
\dx80000430 \wx0000 // barrels front
0C 00 00 // x/y/z offset
04 10 0A // x/y/z extent

// 02 (x) - office
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008435 \wx0002 // office
00 00 00 // x/y/z offset
10 05 0E // x/y/z extent
09 // register
\dx80000447 \wx0003 // snow
00 00 80 // x/y/z offset
02 09 // registers

// 03 (y) - office
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008436 \wx0002 // office
00 00 00 // x/y/z offset
05 10 0E // x/y/z extent
09 // register
\dx80000448 \wx0003 // snow
00 00 80 // x/y/z offset
02 09 // registers

// 04 (x) - office 2 or empty platform
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043D \wx0001 // office
00 00 00 // x/y/z offset
10 05 0E // x/y/z extent
04 // register
\dx8000044F \wx0001 // snow
00 00 80 // x/y/z offset
02 // register

// 05 (y) - office 2 or empty platform
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043E \wx0001 // office
00 00 00 // x/y/z offset
05 10 0E // x/y/z extent
04 // register
\dx80000450 \wx0001 // snow
00 00 80 // x/y/z offset
02 // register

// 06 (x) - forklift platform
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0002 // forklift
05 01 00 // x/y/z offset
06 02 09 // x/y/z extent
08 // register
\dx80000437 \wx0003 // cargo - barrel
0A 01 80 // x/y/z offset
03 06 // registers

// 07 (y) - forklift platform
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0002 // forklift
01 05 00 // x/y/z offset
02 06 09 // x/y/z extent
08 // register
\dx80000438 \wx0003 // cargo - barrel
00 01 80 // x/y/z offset
03 06 // registers

// 08 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 09 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback for sprite layout

10 \w600 // set little/lots threshold
12 \dx04010008 // cargo types for randomisation triggers

11 FF // pylon placement (all)

// Purchase list
2010 * 4	 01 04 01 02
2011 images/purchaseicons.pcx 163 667 01 59 64 -31 -28 // 042D x
2012 images/purchaseicons.pcx 235 667 01 59 64 -31 -28 // 042E y

2013 * 7	 02 04 02 // ID
00 01
\w0

// Real sprites

// Test variable 10 for real sprites - barrel platform
2014 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E0 // barrel sprites

// Test variable 10 for real sprites - barrel platform - empty
2015 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00DF // barrel sprites - empty

// Test variable 10 for real sprites - office
2016 * 14	 02 04 19 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00EE // office sprites

// Test variable 10 for real sprites - forklift
2017 * 14	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00D1 // forklift sprites

// Forklift
// Random cargo thresholds
2018 * 15	 02 04 42 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx8000
\wx8019
\wx8032
\wx804B

// Cargo show/hide
2019 * 30	 02 04 43 // ID
85
7D 20 // read register 20 for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
20 \wxFFFF
\2+
7E 42 // add random value
00 \wx00FF
01
\wx8000 \w0 \w100 // hide cargo
\wx8001 // show cargo

// Random forklift variety
2020 * 11	 02 04 44 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

// Random forklift barrel variety
2021 * 11	 02 04 45 // ID
80
00 // don't re-randomise
11 // use bit 17
02
\wx8000
\wx8002

// Offices
// Office 2 maybe
2022 * 15	 02 04 48 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx8001
\wx8000
\wx8000
\wx8000

// Office 2 - platform 0
2023 * 14	 02 04 46 // ID
81 41 // platform info and position
08 0F // platform number
01
\wx8001 00 00
\wx0048

// Office variety
2024 * 11	 02 04 47 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8006

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Barrel platform
2025 * 29	 02 04 21 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// Barrel platform - empty
2026 * 29	 02 04 26 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001C \w0 \w0
\wx001C

// Office
2027 * 51	 02 04 22 // ID
85
7E 47 // get random office variety offset
20 \wx00FF
\2sto 1A
20 \wx0009 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0019 \w0 \w0
\wx0019

// Office 2 or empty platform
2028 * 51	 02 04 23 // ID
85
7E 46 // get office 2 visibility
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0019 \w0 \w0
\wx0019

// Forklift
2029 * 62	 02 04 24 // ID
85
7E 44 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst
7E 45 // get random offset for crate
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 43 // get show/hide flag for crate
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001A \w0 \w0
\wx001A

// Forklift - no suitable cargo
2030 * 55	 02 04 25 // ID
85
7E 44 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst 1A
20 \w0 // always hide barrels
\2sto 1A
20 \wx0006 // store in register
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001A \w0 \w0
\wx001A

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

2031 * 23	 02 04 20 // ID
81 68 00 // station info - check this tile
0A 0F
03
\wx0021 01 01 // part 00/01 - barrel platforms
\wx0022 05 05 // part 02/03 - office
\wx0023 09 09 // part 04/05 - office2 (or empty platform)
\wx0024 // part 06/07 - forklift

// No suitable cargo
2032 * 23	 02 04 1F // ID
81 68 00 // station info - check this tile
0A 0F
03
\wx0026 01 01 // part 00/01 - barrel platforms
\wx0022 05 05 // part 02/03 - office
\wx0023 09 09 // part 04/05 - office2 (or empty platform)
\wx0025 // part 06/07 - forklift

// Callback 14

2033 * 23	 02 04 10 // ID
81 68 00 // station info - check this tile
0A 0F
03
\wx8000 01 01 // part 00/01 - barrel platforms
\wx8002 05 05 // part 02/03 - office
\wx8004 09 09 // part 04/05 - office2 (or empty platform)
\wx8006 // part 06/07 - forklift

// Callback 24

// Platform 0
2034 * 18	 02 04 31 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
02
\wx8002 01 01 // office
\wx8004 02 02 // office2 (or empty platform)
\wx8000 // barrel platforms

// Platform 1
2035 * 22	 02 04 32 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8004 00 00 // office2 (or empty platform)
\wx8006 01 01 // forklift
\wx8004 05 06 // office2 (or empty platform)
\wx8000 // barrel platforms

// Platform 2
2036 * 26	 02 04 33 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
04
\wx8004 00 00 // office2 (or empty platform)
\wx8002 02 02 // office
\wx8004 03 03 // office2 (or empty platform)
\wx8006 07 07 // forklift
\wx8000 // barrel platforms

// Platform 3
2037 * 22	 02 04 34 // ID
81 10 // platform info and relative position
00 07 // position along platform from N mod 8
03
\wx8006 02 02 // forklift
\wx8002 05 05 // office
\wx8004 06 06 // office2 (or empty platform)
\wx8000 // barrel platforms

2038 * 22	 02 04 35 // ID
81 10 // platform info and relative position
08 03 // platform number from N mod 4
03
\wx0031 00 00
\wx0032 01 01
\wx0033 02 02
\wx0034

// Oil
2039 * 27	 02 04 27 // ID
85
1A // all bits on
20 \wx0003 // cargo id for oil
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Rubber
2040 * 27	 02 04 28 // ID
85
1A // all bits on
20 \wx0010 // cargo id for rubber
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Petrol
2041 * 27	 02 04 29 // ID
85
1A // all bits on
20 \wx001A // cargo id for petrol
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Fertiliser
2042 * 27	 02 04 2A // ID
85
1A // all bits on
20 \wx0024 // cargo id for fertiliser
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Dyes
2043 * 27	 02 04 2B // ID
85
1A // all bits on
20 \wx0025 // cargo id for dyes
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Refined products
2044 * 27	 02 04 2C // ID
85
1A // all bits on
20 \wx0026 // cargo id for refined products
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Plastic
2045 * 27	 02 04 2D // ID
85
1A // all bits on
20 \wx0027 // cargo id for plastic
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Alcohol
2046 * 27	 02 04 2E // ID
85
1A // all bits on
20 \wx0029 // cargo id for alcohol
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Farm supplies
2047 * 27	 02 04 2F // ID
85
1A // all bits on
20 \wx002D // cargo id for farm supplies
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Purchase
2048 * 18	 02 04 08 // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout
\wx0035 24 24 // station layout
\wx0002 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
2049 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F

// Forklifts
// Random action 2 outside callback triggers re-randomisation
2050 * 23	 02 04 0C // ID
80
02 // no more cargo
11 // trigger bits 17 to 19
08
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F
\wx001F

//@@WARNING ENABLE 113

// Only re-randomise bits 17 to 19 for forklift
2051 * 23	 02 04 0D // ID
81 68 00 // station info parameter 0/0 - check this tile
0A 0F
03
\wx000B 01 01 // part 00/01 - barrel platforms
\wx001F 05 05 // part 02/03 - office
\wx001F 09 09 // part 04/05 - office2 (or empty platform)
\wx000C // part 06/07 - forklift

// No suitable cargo
2052 * 14	 02 04 09 // ID
81 0C // callback
00 FF
01
\wx0010 14 14 // sprite layout
\wx000D // real sprites

2053 * 37	 03 04
01 11
0A
03 \wx0027 // oil
10 \wx0028 // rubber
1A \wx0029 // petrol
24 \wx002A // fertiliser
25 \wx002B // dyes
26 \wx002C // refined products
27 \wx002D // plastic
29 \wx002E // alcohol
2D \wx002F // farm supplies
FF \wx0008 // purchase
\wx0009 // no suitable cargo

// Fixtures
2054 * 82	 00 04 04 01 12
08 "ISRI"

// Sprite layout
1A 04
// 00 (x)
41
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset

// 01 (y)
41
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset

// 02 (x) purchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset

// 03 (y) purchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

//@@WARNING DISABLE 100

2055 * 29	 02 04 15 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx00FD \w0 \w0
\wx00FD

//@@WARNING ENABLE 100

2056 * 14	 02 04 00 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2057 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx00FD // real sprites

2058 * 10	 03 04
01 12
01
FF \wx0002
\wx0000

2059 * 66	 00 04 04 01 13
08 "ISRI"

// Sprite layout
09 02
// 00 (x)
\dx000003F4 // ground sprite
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
\dx0000042D // back platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
\dx0000042E // front platform
80

// 01 (y)
\dx000003F3 // ground sprite
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
\dx0000042F // back platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
\dx00000430 // front platform
80

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

2060 * 14	 02 04 00 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx00FC // real sprites

2061 * 7	 03 04
01 13
00
\wx0000

2062 * 134	 00 04 04 01 14
08 "ISRI"

// Sprite layout
1A 04
// 00 (x)
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 01 (y)
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

// 02 (x) purchase
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 03 (y) purchase
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

// Real sprites
2063 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00FD // ground overlay sprites

//@@WARNING DISABLE 100

2064 * 29	 02 04 15 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0023 \w0 \w0
\wx0023

//@@WARNING ENABLE 100

2065 * 14	 02 04 00 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2066 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx0023 // real sprites

2067 * 10	 03 04
01 14
01
FF \wx0002 // purchase
\wx0000

2068 * 134	 00 04 04 01 15
08 "ISRI"

// Sprite layout
1A 04
// 00 (x)
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 01 (y)
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

// 02 (x) purchase
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 03 (y) purchase
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

// Real sprites
2069 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00FD // ground overlay sprites

//@@WARNING DISABLE 100

2070 * 29	 02 04 15 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0023 \w0 \w0
\wx0023

//@@WARNING ENABLE 100

2071 * 14	 02 04 00 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2072 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx0023 // real sprites

2073 * 10	 03 04
01 15
01
FF \wx0002 // purchase
\wx0000

2074 * 184	 00 04 05 01 16
08 "ISRI"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
\dx8000042E \wx0000 // platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000430 \wx0000 // platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
\dx80000430 \wx0000 // platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent

// 02 (x) purchase
43
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
\dx8000042E \wx0000 // platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent

// 03 (y) purchase
43
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000430 \wx0000 // platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
\dx80000430 \wx0000 // platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent

0B 02 // use callback to determine layout

0D FE // only allow a length of 1

11 FF // pylon placement (all)

// Test variable 10 for real sprites
2075 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00F7 // ramp sprites

//@@WARNING DISABLE 100

2076 * 29	 02 04 15 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

2077 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2078 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

2079 * 10	 03 04
01 16
01
FF \wx0005
\wx0004

2080 * 184	 00 04 05 01 17
08 "ISRI"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
\dx8000042D \wx0000 // platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
\dx8000042F \wx0000 // platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent

// 02 (x) purchase
43
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
\dx8000042D \wx0000 // platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent

// 03 (y) purchase
43
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
\dx8000042F \wx0000 // platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent

0B 02 // use callback to determine layout

0D FE // only allow a length of 1

11 FF // pylon placement (all)

// Test variable 10 for real sprites
2081 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00F7 // else

//@@WARNING DISABLE 100

2082 * 29	 02 04 15 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

2083 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2084 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

2085 * 10	 03 04
01 17
01
FF \wx0005
\wx0004

2086 * 220	 00 04 05 01 18
08 "ISRI"

// Sprite layout
1A 04
// 00 (x)
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0001 // back ramp
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
02 // register
\dx8000042D \wx0041 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // register
05 // value for variable 10
\dx8000042E \wx0001 // front ramp
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
03 // register
\dx8000042E \wx0041 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
05 // register
05 // value for variable 10

// 01 (y)
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000430 \wx0001 // back ramp
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
02 // register
\dx8000042F \wx0041 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // register
05 // value for variable 10
\dx80000430 \wx0001 // front ramp
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
03 // register
\dx80000430 \wx0041 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
05 // register
05 // value for variable 10

// 02 (x) purchase
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // back ramp
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent

// 03 (y) purchase
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000430 \wx0000 // back ramp
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent

0B 02 // use callback to determine layout

0D FE // only allow a length of 1

11 FF // pylon placement (all)

// Real sprites
2087 * 18	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FD 04 04 // ground overlay sprites
\wx00FC 05 05 // platform sprites
\wx00F7 // ramp sprites

// Ramp/platform show/hide bits
//   bit 0 - back ramp
//   bit 1 - front ramp
//   bit 2 - back platform
//   bit 3 - front platform

// When there is no single sided platform to south, this ramp is a transition between a
// normal high platform (to south) and a single sided platform (to north).
// If tile to north has a single sided platform, show a platform on that side and a ramp on the other side
2088 * 24	 02 04 18 // ID
85 68 0F // station info: check tile along platform to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
02
\wx8006 14 05 14 05 // back platform to N, show back platform (0110)
\wx8009 15 05 15 05 // front platform to N, show front platform (1001)
\wx8003 // show both ramps (0011)

// If tile to south has a single sided platform, only show a ramp on that side only
2089 * 24	 02 04 17 // ID
85 68 01 // station info: check tile along platform to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
02
\wx8001 14 05 14 05 // back platform to S, hide front ramp (0001)
\wx8002 15 05 15 05 // front platform to S, hide back ramp (0010)
\wx0018

//@@WARNING DISABLE 100

2090 * 84	 02 04 15 // ID
85
7E 17 // get show/hide bits
20 \wx000F
\2sto 1A
20 \wx0020 // store in register
\2rst
7D 20 // read register for show/hide bits
20 \wx0001 // shift and mask for bit 0
\2sto 1A
20 \wx0002 // store in register - back ramp show/hide
\2rst
7D 20 // read register for show/hide bits
21 \wx0001 // shift and mask for bit 1
\2sto 1A
20 \wx0003 // store in register - front ramp show/hide
\2rst
7D 20 // read register for show/hide bits
22 \wx0001 // shift and mask for bit 2
\2sto 1A
20 \wx0004 // store in register - back platform show/hide
\2rst
7D 20 // read register for show/hide bits
23 \wx0001 // shift and mask for bit 3
\2sto 1A
20 \wx0005 // store in register - front platform show/hide
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

2091 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2092 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

2093 * 10	 03 04
01 18
01
FF \wx0005 // purchase
\wx0004

2094 * 220	 00 04 05 01 19
08 "ISRI"

// Sprite layout
1A 04
// 00 (x)
45
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0001 // back ramp
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
02 // register
\dx8000042D \wx0041 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // register
05 // value for variable 10
\dx8000042D \wx0001 // front ramp
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
03 // register
\dx8000042E \wx0041 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
05 // register
05 // value for variable 10

// 01 (y)
45
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0001 // back ramp
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
02 // register
\dx8000042F \wx0041 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // register
05 // value for variable 10
\dx8000042F \wx0001 // front ramp
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
03 // register
\dx80000430 \wx0041 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
05 // register
05 // value for variable 10

// 02 (x) purchase
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // back ramp
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent

// 03 (y) purchase
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // back ramp
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent

0B 02 // use callback to determine layout

0D FE // only allow a length of 1

11 FF // pylon placement (all)

// Real sprites
2095 * 18	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FD 04 04 // ground overlay sprites
\wx00FC 05 05 // platform sprites
\wx00F7 // ramp sprites

// When there is no single sided platform to north, this ramp is a transition between a
// normal high platform (to north) and a single sided platform (to south).
// If tile to south has a single sided platform, show a platform on that side and a ramp on the other side
2096 * 24	 02 04 18 // ID
85 68 01 // station info: check tile along platform to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
02
\wx8006 14 05 14 05 // back platform to S, show back platform (0110)
\wx8009 15 05 15 05 // front platform to S, show front platform (1001)
\wx8003 // show both ramps (0011)

// If tile to north has a single sided platform, only show a ramp on that side only
2097 * 24	 02 04 17 // ID
85 68 0F // station info: check tile along platform to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
02
\wx8001 14 05 14 05 // back platform to N, hide front ramp (0001)
\wx8002 15 05 15 05 // front platform to N, hide back ramp (0010)
\wx0018

//@@WARNING DISABLE 100

2098 * 84	 02 04 15 // ID
85
7E 17 // get show/hide bits
20 \wx000F
\2sto 1A
20 \wx0020 // store in register
\2rst
7D 20 // read register for show/hide bits
20 \wx0001 // shift and mask for bit 0
\2sto 1A
20 \wx0002 // store in register - back ramp show/hide
\2rst
7D 20 // read register for show/hide bits
21 \wx0001 // shift and mask for bit 1
\2sto 1A
20 \wx0003 // store in register - front ramp show/hide
\2rst
7D 20 // read register for show/hide bits
22 \wx0001 // shift and mask for bit 2
\2sto 1A
20 \wx0004 // store in register - back platform show/hide
\2rst
7D 20 // read register for show/hide bits
23 \wx0001 // shift and mask for bit 3
\2sto 1A
20 \wx0005 // store in register - front platform show/hide
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

2099 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2100 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

2101 * 10	 03 04
01 19
01
FF \wx0005 // purchase
\wx0004

2102 * 82	 00 04 07 01 1A
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // ramp
00 00 00 // x/y/z offset
10 10 03 // x/y/z extent

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // ramp
00 00 00 // x/y/z offset
10 10 03 // x/y/z extent

0B 02 // use callback to determine layout

0D FE // only allow a length of 1

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

2103 * 4	 01 04 01 02
2104 images/newfixtures2.pcx 18 112 01 28 56 -31 3 // 042D x, ramp non-track N
2105 images/newfixtures2.pcx 80 112 01 28 56 -23 3 // 042E y, ramp non-track N

2106 * 7	 02 04 00 // ID
00 01
\w0

// Test variable 10 for real sprites
2107 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // ramp sprites

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2108 * 23	 02 04 15 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
2109 * 22	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2110 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
2111 * 14	 02 04 02 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

2112 * 10	 03 04
01 1A
01
FF \wx0002 // purchase
\wx0001

2113 * 22	 00 04 07 01 1B
08 "ISRI"

0A 1A // copy sprite layout

0B 02 // use callback to determine layout

0D FE // only allow a length of 1

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

2114 * 4	 01 04 01 02
2115 images/newfixtures2.pcx 142 112 01 32 57 -24 -3 // 042D x, ramp non-track S
2116 images/newfixtures2.pcx 205 112 01 32 58 -31 -3 // 042E y, ramp non-track S

2117 * 7	 02 04 00 // ID
00 01
\w0

// Test variable 10 for real sprites
2118 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // ramp sprites

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2119 * 23	 02 04 15 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
2120 * 22	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2121 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
2122 * 14	 02 04 02 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

2123 * 10	 03 04
01 1B
01
FF \wx0002 // purchase
\wx0001

2124 * 260	 00 04 07 01 1C
08 "ISRI"

// Sprite layout
1A 08
// 00 (x) north
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // buffer
00 05 00 // x/y/z offset
08 06 04 // x/y/z extent

// 01 (y) north
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // buffer
05 00 00 // x/y/z offset
06 08 04 // x/y/z extent

// 02 (x) south
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // buffer
08 05 00 // x/y/z offset
08 06 04 // x/y/z extent

// 03 (y) south
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000430 \wx0000 // buffer
05 08 00 // x/y/z offset
06 08 04 // x/y/z extent

// 04 (x) double
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000431 \wx0000 // buffer
00 05 00 // x/y/z offset
10 06 04 // x/y/z extent

// 05 (y) double
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000432 \wx0000 // buffer
05 00 00 // x/y/z offset
06 10 04 // x/y/z extent

// 06 (x) purchase (north)
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // buffer
00 05 00 // x/y/z offset
08 06 04 // x/y/z extent

// 07 (y) purchase (north)
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // buffer
05 00 00 // x/y/z offset
06 08 04 // x/y/z extent

0B 02 // use callback to determine layout

0D FE // only allow a length of 1

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
2125 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00F4 // else

//@@WARNING DISABLE 100

2126 * 29	 02 04 15 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

2127 * 14	 02 04 06 // ID
81 45 // rail continuation info
00 01 // get bit 0 - south
01
\wx8004 01 01 // connecting rail to S - double buffer
\wx8002 // else - south buffer

2128 * 14	 02 04 07 // ID
81 45 // rail continuation info
01 01 // get bit 1 - north
01
\wx0006 01 01 // connecting rail to N
\wx8000 // else - north buffer

2129 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx0007 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
2130 * 14	 02 04 05 // ID
81 0C //callback
00 FF
01
\wx8006 14 14 // sprite layout
\wx001B // real sprites

2131 * 10	 03 04
01 1C
01
FF \wx0005
\wx0004

2132 * 52	 00 04 07 01 1D
08 "ISRI"

// Sprite layout
09 02
// 00 (x)
\dx000003F4 // ground sprite
00 00 00 // x/y/z offset
10 10 03 // x/y/z extent
\dx0000042D // buffer
80

// 01 (y)
\dx000003F3 // ground sprite
00 00 00 // x/y/z offset
10 10 03 // x/y/z extent
\dx0000042E // buffer
80

0B 02 // use callback to determine layout

0D FE // only allow a length of 1

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Format: spritenum pcxfile xpos ypos compression ysize xsize xrel yrel
2133 * 4	 01 04 03 02
2134 images/newfixtures2.pcx 18 72 01 34 64 -31 -3 // x N
2135 images/newfixtures2.pcx 90 73 01 34 64 -31 -3 // y N

2136 images/newfixtures2.pcx 161 73 01 34 64 -31 -3 // x S
2137 images/newfixtures2.pcx 230 73 01 34 64 -31 -3 // y S

2138 images/newfixtures2.pcx 300 73 01 34 64 -31 -3 // x double
2139 images/newfixtures2.pcx 371 73 01 34 64 -31 -3 // y double

2140 * 7	 02 04 00 // ID
00 01
\w0

2141 * 7	 02 04 01 // ID
00 01
\w1

2142 * 7	 02 04 02 // ID
00 01
\w2

2143 * 14	 02 04 06 // ID
81 45 // rail continuation info
00 01 // get bit number 0 south
01
\wx0002 01 01 // connecting rail to S - double buffer
\wx0001 // south buffer

2144 * 14	 02 04 07 // ID
81 45 // rail continuation info
01 01 // get bit number 1 north
01
\wx0006 01 01 // connecting rail to N
\wx0000 // north buffer

2145 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

// Purchase list
2146 * 14	 02 04 05 // ID
81 0C //callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0000 // real sprites

2147 * 10	 03 04
01 1D
01
FF \wx0005
\wx0004

2148 * 54	 00 04 06 01 1E
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset

// 01 (y)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset

0B 02 // use callback to determine layout

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

//@@WARNING DISABLE 100

2149 * 23	 02 04 01 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx00FF \w0 \w0
\wx00FF

//@@WARNING ENABLE 100

2150 * 14	 02 04 00 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0001 // real sprites

2151 * 7	 03 04
01 1E
00
\wx0000

2152 * 166	 00 04 06 01 1F
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx8000842D \wx0041 // fence NW
00 00 00 // x/y/z offset
10 01 08 // x/y/z extent
01 // register
05 // value for variable 10
\dx8000842E \wx0041 // fence NE
00 00 00 // x/y/z offset
01 10 08 // x/y/z extent
02 // register
05 // value for variable 10
\dx8000842F \wx0041 // fence SE
00 0F 00 // x/y/z offset
10 01 08 // x/y/z extent
03 // register
05 // value for variable 10
\dx80008430 \wx0041 // fence SW
0F 00 00 // x/y/z offset
01 10 08 // x/y/z extent
04 // register
05 // value for variable 10

// 01 (y)
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx8000842D \wx0041 // fence NW
00 00 00 // x/y/z offset
10 01 08 // x/y/z extent
02 // register
05 // value for variable 10
\dx8000842E \wx0041 // fence NE
00 00 00 // x/y/z offset
01 10 08 // x/y/z extent
01 // register
05 // value for variable 10
\dx8000842F \wx0041 // fence SE
00 0F 00 // x/y/z offset
10 01 08 // x/y/z extent
04 // register
05 // value for variable 10
\dx80008430 \wx0041 // fence SW
0F 00 00 // x/y/z offset
01 10 08 // x/y/z extent
03 // register
05 // value for variable 10

0B 02 // use callback to determine layout

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
2153 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00D2 05 05 // fence
\wx00FF // ground overlay sprites

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2154 * 67	 02 04 15 // ID
85
7E B7 // get fence to NW
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register
\2rst
7E B6 // get fence to NE
20 \wx7FFF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E B5 // get fence to SE
20 \wx7FFF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E B4 // get fence to SW
20 \wx7FFF
\2sto 1A
20 \wx0004 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// Purchase
2155 * 47	 02 04 16 // ID
85
1A // all bits on
20 \wx0001 // val = 1
\2sto 1A
20 \wx0001 // store in register - fence to NW
\2sto 1A
20 \wx0002 // store in register - fence to NE
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0003 // store in register - fence to SE
\2sto 1A
20 \wx0004 // store in register - fence to SW
\2sto 1A
00 \wx0010 // store in register - normal/snow/desert offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

2156 * 14	 02 04 01 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
2157 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

2158 * 10	 03 04
01 1F
01
FF \wx0002 // purchase
\wx0001

2159 * 50	 00 04 06 01 20
08 "ISRI"

// Sprite layout
09 02
// 00 (x)
\dx000003F4 // ground sprite
00 00 00 // x/y/z offset
10 10 03 // x/y/z extent
\dx0000042D
80

// 01 (y)
\dx000003F3 // ground sprite
00 00 00 // x/y/z offset
10 10 03 // x/y/z extent
\dx0000042D
80

0B 02 // use callback to determine layout

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

2160 * 14	 02 04 00 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx00FE // real sprites

2161 * 7	 03 04
01 20
00
\wx0000
2162 * 58	 00 04 07 01 21
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
11 // register

// 01 (y)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
11 // register

0B 02 // use callback to determine layout

0C FE // only allow a width of 1

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Offset for crossing differs depending on orientation
2163 * 14	 02 04 33 // ID
81 41 // platform info and position
18 01 // shift 24 and mask bit 0 for tile orientation
01
\wx8005 01 01 // y orientation
\wx8006 // x orientation

// For tiles with perpendicular road to S; check if tile to N is a perpendicular road
2164 * 42	 02 04 30 // ID
85 68 F0 // station info parameter -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and dir.
05
\wx0033 21 0D 21 0D // cross-roads
\wx0033 22 0D 22 0D // cross-roads
\wx0033 23 05 23 05 // cross-roads
\wx0033 26 0D 26 0D // cross-roads
\wx0033 27 0D 27 0D // cross-roads
\wx8004 // t-junction S

// For tiles with no perpendicular road to S; check if tile to N is a perpendicular road
2165 * 42	 02 04 31 // ID
85 68 F0 // station info parameter -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and dir.
05
\wx8002 21 0D 21 0D // t-junction N
\wx8002 22 0D 22 0D // t-junction N
\wx8002 23 05 23 05 // t-junction N
\wx8002 26 0D 26 0D // t-junction N
\wx8002 27 0D 27 0D // t-junction N
\wx8000 // straight road

// For all tiles; check if tile to S is a perpendicular road
2166 * 42	 02 04 32 // ID
85 68 10 // station info parameter +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
05
\wx0030 21 0D 21 0D // perpendicular road to S
\wx0030 22 0D 22 0D // perpendicular road to S
\wx0030 23 05 23 05 // perpendicular road crossing to S
\wx0030 25 0D 25 0D // perpendicular road entry to S
\wx0030 28 0D 28 0D // perpendicular road ramp to S
\wx0031 // else

//@@WARNING DISABLE 100

2167 * 34	 02 04 02 // ID
85
7E 32 // get tile type offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx00CD \w0 \w0
\wx00CD

//@@WARNING DISABLE 170

// Purchase
2168 * 26	 02 04 04 // ID
81
1A // all bits on
20 00 // val = 0
\2sto 1A
20 11 // store in register
\2rst
1A // all bits on
20 00 // val = 0
\2sto 1A
00 10 // store in register
01
\wx00CD 00 00
\wx00CD

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2169 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0002 // real sprites

// For purchase list
2170 * 14	 02 04 03 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0004 // real sprites

2171 * 10	 03 04
01 21
01
FF \wx0003 // purchase
\wx0001

2172 * 114	 00 04 07 01 22
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
11 // register
\dx8000842D \wx0041 // fence NW
00 00 00 // x/y/z offset
10 01 08 // x/y/z extent
01 // register
05 // value for variable 10
\dx8000842F \wx0041 // fence SE
00 0F 00 // x/y/z offset
10 01 08 // x/y/z extent
03 // register
05 // value for variable 10

// 01 (y)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
11 // register
\dx8000842E \wx0041 // fence NE
00 00 00 // x/y/z offset
01 10 08 // x/y/z extent
01 // register
05 // value for variable 10
\dx80008430 \wx0041 // fence SW
0F 00 00 // x/y/z offset
01 10 08 // x/y/z extent
03 // register
05 // value for variable 10

0B 02 // use callback to determine layout

0C FE // only allow a width of 1

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
2173 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00D2 05 05 // fence sprites
\wx00CD // road sprites

// Offset for cross-roads differs depending on orientation
2174 * 14	 02 04 23 // ID
81 41 // platform info and position
18 01 // shift 24 and mask bit 0 for tile orientation
01
\wx8005 01 01 // y orientation
\wx8006 // x orientation

// For tiles with perpendicular road to S; check if tile to N is a perpendicular road
2175 * 42	 02 04 20 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and dir.
05
\wx0023 21 0D 21 0D // cross-roads
\wx0023 22 0D 22 0D // cross-roads
\wx0023 23 05 23 05 // cross-roads
\wx0023 26 0D 26 0D // cross-roads
\wx0023 27 0D 27 0D // cross-roads
\wx8004 // t-junction S

// For tiles with no perpendicular road to S; check if tile to N is a perpendicular road
2176 * 42	 02 04 21 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and dir.
05
\wx8002 21 0D 21 0D // t-junction N
\wx8002 22 0D 22 0D // t-junction N
\wx8002 23 05 23 05 // t-junction N
\wx8002 26 0D 26 0D // t-junction N
\wx8002 27 0D 27 0D // t-junction N
\wx8000 // straight road

// For all tiles; check if tile to S is a perpendicular road
2177 * 42	 02 04 22 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
05
\wx0020 21 0D 21 0D // perpendicular road to S
\wx0020 22 0D 22 0D // perpendicular road to S
\wx0020 23 05 23 05 // perpendicular road crossing to S
\wx0020 25 0D 25 0D // perpendicular road entry to S
\wx0020 28 0D 28 0D // perpendicular road ramp to S
\wx0021 // else

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2178 * 56	 02 04 02 // ID
85
7E 22 // get tile type offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E B7 // get fence to NW
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register
\2rst
7E B5 // get fence to SE
20 \wx7FFF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// Purchase
2179 * 34	 02 04 04 // ID
81
1A // all bits on
20 01 // val = 1
\2sto 1A
20 01 // store in register - fence to NW
\2rst
1A // all bits on
20 00 // val = 0
\2sto 1A
20 03 // store in register - fence to SE
\2sto 1A
20 11 // store in register - tile type offset
\2sto 1A
00 10 // store in register - normal/snow/desert offset
01
\wx001B 00 00
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2180 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0002 // real images

// For purchase list
2181 * 14	 02 04 03 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0004 // real images

2182 * 10	 03 04
01 22
01
FF \wx0003 // purchase
\wx0001

2183 * 90	 00 04 06 01 23
08 "ISRI"

// Sprite layout
1A 04
// 00 (x)
41
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
0A // register

// 01 (y)
41
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
0A // register

// 02 (x) puchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
0A // register

// 03 (y) puchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0002 // ground overlay sprite (child)
00 00 80 // x/y/z offset
0A // register

0B 02 // use callback to determine layout

0D FE // only allow a length of 1

11 00 // no pylons
14 FF // no wires

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2184 * 40	 02 04 15 // ID
85
7E BA // get overlay offset
20 \wx00FF
\2sto 1A
20 \wx000A // store in register - overlay offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx00F6 \w0 \w0
\wx00F6

// Purchase
2185 * 23	 02 04 16 // ID
85
7E B9 // get overlay offset
20 \wx00FF
\2sto 1A
00 \wx000A // store in register - overlay offset
01
\wx00F6 \w0 \w0
\wx00F6

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2186 * 14	 02 04 01 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2187 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx0016 // real sprites

2188 * 10	 03 04
01 23
01
FF \wx0002 // purchase
\wx0001

2189 * 169	 00 04 07 01 24
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx00008C1F \wx0003 // vehicle 1
00 01 00 // x/y/z offset
03 08 0A // x/y/z extent
01 11 // registers
\dx00008C1F \wx0003 // vehicle 2
04 01 00 // x/y/z offset
03 08 0A // x/y/z extent
02 11 // registers
\dx00008C1F \wx0003 // vehicle 3
08 01 00 // x/y/z offset
03 08 0A // x/y/z extent
03 11 // registers
\dx00008C1F \wx0003 // vehicle 4
0C 01 00 // x/y/z offset
03 08 0A // x/y/z extent
04 11 // registers

// 01 (y)
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0000 // ground overlay sprite (child)
00 00 80 // x/y/z offset
\dx00008C21 \wx0003 // vehicle 1
01 00 00 // x/y/z offset
08 03 0A // x/y/z extent
01 11 // registers
\dx00008C21 \wx0003 // vehicle 2
01 04 00 // x/y/z offset
08 03 0A // x/y/z extent
02 11 // registers
\dx00008C21 \wx0003 // vehicle 3
01 08 00 // x/y/z offset
08 03 0A // x/y/z extent
03 11 // registers
\dx00008C21 \wx0003 // vehicle 4
01 0C 00 // x/y/z offset
08 03 0A // x/y/z extent
04 11 // registers

0B 02 // use callback to determine layout

10 \w600 // set little / lots threshold

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

2190 * 4	 01 04 01 02
2191 images/newroads4.pcx 4 115 01 31 64 -31 0 // x, ground overlay
2192 images/newroads4.pcx 72 115 01 31 64 -31 0 // y, ground overlay

2193 * 7	 02 04
00 // ID
00 01
\w0

// Randomisation for cargo thresholds
2194 * 15	 02 04 02 // ID
80
02 // no more cargo
12 // use bits 18 and 19
04
\wx8000
\wx8040
\wx8080
\wx80C0

2195 * 15	 02 04 31 // ID
81 7D 21 // read register
00 FF
01
\wx8000 00 00
\wx8001

2196 * 15	 02 04 32 // ID
81 7D 21 // read register
00 FF
01
\wx8000 00 01
\wx8001

2197 * 15	 02 04 33 // ID
81 7D 21 // read register
00 FF
01
\wx8000 00 02
\wx8001

2198 * 15	 02 04 34 // ID
81 7D 21 // read register
00 FF
01
\wx8000 00 03
\wx8001

// randomisation for vehicle positions
2199 * 15	 02 04 36 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx0031
\wx0033
\wx0034
\wx0032

2200 * 15	 02 04 37 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx0032
\wx0031
\wx0033
\wx0034

2201 * 15	 02 04 38 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx0033
\wx0034
\wx0032
\wx0031

2202 * 15	 02 04 39 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx0034
\wx0032
\wx0031
\wx0033

2203 * 23	 02 04 15 // ID
85 01 // year from 1920
00 \wx00FF
02
\wx80C0 \w0 \w53 // to 1973
\wx8000 \w54 \w85 // 1974 to 2005
\wx8180 // 2006 onwards

// Offsets for truck varieties from base set
// coal truck      0x0
// mail truck      0x8
// oil tanker      0x10
// livestock truck 0x18
// goods truck     0x20
// food truck      0x28
// grain truck     0x30
// wood truck      0x38
// flatbed truck   0x40
// ore truck       0x48
// armoured van    0x50
// water tanker    0x90
// fruit truck     0x98
// rubber truck    0xA0

// Select truck variety suitable for cargo
2204 * 252	 02 04 1C // ID
85
7D 20 // read register for this cargo type
00 \wx00FF
28
\wx8008 \wx0002 \wx0002 // mail
\wx8010 \wx0003 \wx0003 // oil
\wx8018 \wx0004 \wx0004 // livestock
\wx8020 \wx0005 \wx0005 // goods
\wx8030 \wx0006 \wx0006 // grain
\wx8038 \wx0007 \wx0007 // wood
\wx8048 \wx0008 \wx0008 // iron ore
\wx8040 \wx0009 \wx0009 // steel
\wx8050 \wx000A \wx000A // valuables
\wx8038 \wx000B \wx000B // paper
\wx8028 \wx000C \wx000C // food
\wx8098 \wx000D \wx000D // fruit
\wx8048 \wx000E \wx000E // copper ore
\wx8090 \wx000F \wx000F // water
\wx80A0 \wx0010 \wx0010 // rubber
\wx8030 \wx0011 \wx0012 // wheat/maize
\wx8038 \wx0013 \wx0013 // tropic wood
\wx8050 \wx0014 \wx0015 // gold/diamonds
\wx8048 \wx0016 \wx0019 // clay/gravel/lime/sand
\wx8010 \wx001A \wx001A // petrol
\wx8020 \wx001B \wx001B // wood products
\wx8040 \wx001C \wx001D // copper/lumber
\wx8028 \wx001E \wx001E // fish
\wx8020 \wx001F \wx0022 // wool/glass/ceramics/bricks
\wx8040 \wx0023 \wx0023 // vehicles
\wx8010 \wx0024 \wx0027 // fertiliser/dyes/refined products/plastic
\wx8048 \wx0028 \wx0028 // bauxite
\wx8090 \wx0029 \wx0029 // alcohol
\wx8020 \wx002A \wx002B // building materials/engineering supplies
\wx8030 \wx002C \wx002C // plant fibres
\wx8020 \wx002D \wx002D // farm supplies
\wx8098 \wx002E \wx002E // fruit (and veg)
\wx8090 \wx002F \wx002F // milk
\wx8020 \wx0030 \wx0030 // manufacturing supplies
\wx8040 \wx0031 \wx0032 // recyclables/scrap metal
\wx8030 \wx0033 \wx0036 // sugar beet/sugar cane/cereals/oil seed
\wx8028 \wx0037 \wx0038 // sugar/coffee
\wx8030 \wx0039 \wx0039 // beans
\wx8048 \wx003A \wx003A // nitrates
\wx8020 \wx003B \wx003B // vehicle parts
\wx8000 // coal

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2205 * 117	 02 04 10 // ID
85
7D 20 // read register for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
20 \wxFFFF
\2+
7E 02 // add random value
20 \wx00FF
\2u>>
1A
20 \wx0008 // shift right 8 bits (val = val / 0x100)
\2<
1A
20 \wx0004 // clamp val at max of 4
\2sto 1A
20 \wx0021 // store in register
\2rst
7E 36 // get visible flag for truck 1
20 \wx00FF
\2sto 1A
20 \wx0001 // store in register
\2rst
7E 37 // get visible flag for truck 2
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E 38 // get visible flag for truck 3
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E 39 // get visible flag for truck 4
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst
7E 15 // get year offset
20 \wx0FFF
\2+
7E 1C // add offset for truck variety
20 \wx0FFF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx0000 \w0 \w0
\wx0000

// Purchase
2206 * 63	 02 04 11 // ID
85
1A // all bits on
20 \wx0001 // val = 1
\2sto 1A
20 \wx0001 // store in register
\2sto 1A
20 \wx0002 // store in register
\2sto 1A
20 \wx0003 // store in register
\2sto 1A
20 \wx0004 // store in register
\2rst
7E 15 // get year offset
20 \wx0FFF
\2+ 1A
20 \wx0020 // goods offset
\2sto 1A
20 \wx0011 // store in register
\2rst
1A // all bits on
20 \wx0000
\2sto 1A
00 \wx0010 // store in register
01
\wx0000 \w0 \w0
\wx0000

// Empty
2207 * 53	 02 04 12 // ID
85
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0001 // store in register
\2sto 1A
20 \wx0002 // store in register
\2sto 1A
20 \wx0003 // store in register
\2sto 1A
20 \wx0004 // store in register
\2sto 1A
20 \wx0011 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Store cargo id in register 0x20 and check for callback 0x14

2208 * 27	 02 04 21 85 1A 20 01 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // coal
2209 * 27	 02 04 22 85 1A 20 02 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // mail
2210 * 27	 02 04 23 85 1A 20 03 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // oil
2211 * 27	 02 04 24 85 1A 20 04 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // livestock
2212 * 27	 02 04 25 85 1A 20 05 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // goods
2213 * 27	 02 04 26 85 1A 20 06 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // grain
2214 * 27	 02 04 27 85 1A 20 07 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // wood
2215 * 27	 02 04 28 85 1A 20 08 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // iron ore
2216 * 27	 02 04 29 85 1A 20 09 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // steel
2217 * 27	 02 04 2A 85 1A 20 0A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // valuables
2218 * 27	 02 04 2B 85 1A 20 0B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // paper
2219 * 27	 02 04 2C 85 1A 20 0C 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // food
2220 * 27	 02 04 2D 85 1A 20 0D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // fruit
2221 * 27	 02 04 2E 85 1A 20 0E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // copper ore
2222 * 27	 02 04 2F 85 1A 20 0F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // water
2223 * 27	 02 04 30 85 1A 20 10 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // rubber
2224 * 27	 02 04 31 85 1A 20 11 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // wheat
2225 * 27	 02 04 32 85 1A 20 12 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // maize
2226 * 27	 02 04 33 85 1A 20 13 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // tropic wood
2227 * 27	 02 04 34 85 1A 20 14 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // gold
2228 * 27	 02 04 35 85 1A 20 15 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // diamonds
2229 * 27	 02 04 36 85 1A 20 16 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // clay
2230 * 27	 02 04 37 85 1A 20 17 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // gravel
2231 * 27	 02 04 38 85 1A 20 18 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // lime
2232 * 27	 02 04 39 85 1A 20 19 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // sand
2233 * 27	 02 04 3A 85 1A 20 1A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // petrol
2234 * 27	 02 04 3B 85 1A 20 1B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // wood products
2235 * 27	 02 04 3C 85 1A 20 1C 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // copper
2236 * 27	 02 04 3D 85 1A 20 1D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // lumber
2237 * 27	 02 04 3E 85 1A 20 1E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // fish
2238 * 27	 02 04 3F 85 1A 20 1F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // wool
2239 * 27	 02 04 40 85 1A 20 20 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // glass
2240 * 27	 02 04 41 85 1A 20 21 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // ceramics
2241 * 27	 02 04 42 85 1A 20 22 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // bricks
2242 * 27	 02 04 43 85 1A 20 23 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // vehicles
2243 * 27	 02 04 44 85 1A 20 24 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // fertiliser
2244 * 27	 02 04 45 85 1A 20 25 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // dyes
2245 * 27	 02 04 46 85 1A 20 26 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // refined products
2246 * 27	 02 04 47 85 1A 20 27 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // plastic
2247 * 27	 02 04 48 85 1A 20 28 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // bauxite
2248 * 27	 02 04 49 85 1A 20 29 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // alcohol
2249 * 27	 02 04 4A 85 1A 20 2A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // building materials
2250 * 27	 02 04 4B 85 1A 20 2B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // engineering supplies
2251 * 27	 02 04 4C 85 1A 20 2C 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // plant fibres
2252 * 27	 02 04 4D 85 1A 20 2D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // farm supplies
2253 * 27	 02 04 4E 85 1A 20 2E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // fruit (and veg)
2254 * 27	 02 04 4F 85 1A 20 2F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // milk
2255 * 27	 02 04 50 85 1A 20 30 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // manufacturing supplies
2256 * 27	 02 04 51 85 1A 20 31 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // recyclables
2257 * 27	 02 04 52 85 1A 20 32 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // scrap metal
2258 * 27	 02 04 53 85 1A 20 33 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // sugar beet
2259 * 27	 02 04 54 85 1A 20 34 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // sugar cane
2260 * 27	 02 04 55 85 1A 20 35 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // cereals
2261 * 27	 02 04 56 85 1A 20 36 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // oil seed
2262 * 27	 02 04 57 85 1A 20 37 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // sugar
2263 * 27	 02 04 58 85 1A 20 38 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // coffee
2264 * 27	 02 04 59 85 1A 20 39 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // beans
2265 * 27	 02 04 5A 85 1A 20 3A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // nitrates
2266 * 27	 02 04 5B 85 1A 20 3B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0010 // vehicle parts

// Empty
2267 * 14	 02 04 04 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0012 // real sprites

// Purchase list
2268 * 14	 02 04 07 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0011 // real sprites

2269 * 187	 03 04
01 24
3C
01 \wx0021 // coal
02 \wx0022 // mail
03 \wx0023 // oil
04 \wx0024 // livestock
05 \wx0025 // goods
06 \wx0026 // grain
07 \wx0027 // wood
08 \wx0028 // iron ore
09 \wx0029 // steel
0A \wx002A // valuables
0B \wx002B // paper
0C \wx002C // food
0D \wx002D // fruit
0E \wx002E // copper ore
0F \wx002F // water
10 \wx0030 // rubber
11 \wx0031 // wheat
12 \wx0032 // maize
13 \wx0033 // tropic wood
14 \wx0034 // gold
15 \wx0035 // diamonds
16 \wx0036 // clay
17 \wx0037 // gravel
18 \wx0038 // lime
19 \wx0039 // sand
1A \wx003A // petrol
1B \wx003B // wood products
1C \wx003C // copper
1D \wx003D // lumber
1E \wx003E // fish
1F \wx003F // wool
20 \wx0040 // glass
21 \wx0041 // ceramics
22 \wx0042 // bricks
23 \wx0043 // vehicles
24 \wx0044 // fertiliser
25 \wx0045 // dyes
26 \wx0046 // refined products
27 \wx0047 // plastic
28 \wx0048 // bauxite
29 \wx0049 // alcohol
2A \wx004A // building materials
2B \wx004B // engineering supplies
2C \wx004C // plant fibres
2D \wx004D // farm supplies
2E \wx004E // fruit (and veg)
2F \wx004F // milk
30 \wx0050 // manufacturing supplies
31 \wx0051 // recyclables
32 \wx0052 // scrap metal
33 \wx0053 // sugar beet
34 \wx0054 // sugar cane
35 \wx0055 // cereals
36 \wx0056 // oil seed
37 \wx0057 // sugar
38 \wx0058 // coffee
39 \wx0059 // beans
3A \wx005A // nitrates
3B \wx005B // vehicle parts
FF \wx0007 // purchase
\wx0004 // empty

2270 * 120	 00 04 08 01 25
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay sprite
00 00 00 // x/y/z offset
10 10 08 // x/y/z extent
\dx8000842D \wx0041 // fence NW
00 00 00 // x/y/z offset
10 01 08 // x/y/z extent
01 // register
05 // value for variable 10
\dx8000842F \wx0041 // fence SE
00 0F 00 // x/y/z offset
10 01 08 // x/y/z extent
03 // register
05 // value for variable 10

// 01 (y)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0000 // ground overlay sprite
00 00 00 // x/y/z offset
10 10 08 // x/y/z extent
\dx8000842E \wx0041 // fence NE
00 00 00 // x/y/z offset
01 10 08 // x/y/z extent
01 // register
05 // value for variable 10
\dx80008430 \wx0041 // fence SW
0F 00 00 // x/y/z offset
01 10 08 // x/y/z extent
03 // register
05 // value for variable 10

0B 02 // use callback to determine layout

// Only allow 1 x 1
0C FE
0D FE

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

2271 * 4	 01 04 01 02
2272 images/newroads4.pcx 4 221 01 32 65 -32 0 // 042D x, road entry S
2273 images/newroads4.pcx 72 221 01 32 64 -31 0 // 042E y, road entry S

2274 * 7	 02 04 00 // ID
00 01
\w0

// Test variable 10 for real sprites
2275 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00D2 05 05 // fence sprites
\wx0000 // entrance sprites

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2276 * 45	 02 04 02 // ID
85
7E B7 // get fence to NW
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register
\2rst
7E B5 // get fence to SE
20 \wx7FFF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// Purchase
2277 * 30	 02 04 04 // ID
81
1A // all bits on
20 01 // val = 1
\2sto 1A
20 01 // store in register - fence to NW
\2sto 1A
20 03 // store in register - fence to SE
\2rst
1A // all bits on
20 00 // val = 0
\2sto 1A
00 10 // store in register - normal/snow/desert offset
01
\wx001B 00 00
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2278 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0002 // real sprites

// For purchase list
2279 * 14	 02 04 03 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0004 // real sprites

2280 * 10	 03 04
01 25
01
FF \wx0003 // purchase
\wx0001

2281 * 24	 00 04 08 01 26
08 "ISRI"

0A 25 // copy sprite layout

0B 02 // use callback to determine layout

// Only allow 1 x 1
0C FE
0D FE

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

2282 * 4	 01 04 01 02
2283 images/newroads4.pcx 4 263 01 40 64 -31 -9 // 042D x, road entry N
2284 images/newroads4.pcx 72 263 01 40 65 -32 -9 // 042E y, road entry N

2285 * 7	 02 04 00 // ID
00 01
\w0

// Test variable 10 for real sprites
2286 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00D2 05 05 // fence sprites
\wx0000 // entrance sprites

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2287 * 45	 02 04 02 // ID
85
7E B7 // get fence to NW
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register
\2rst
7E B5 // get fence to SE
20 \wx7FFF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// Purchase
2288 * 30	 02 04 04 // ID
81
1A // all bits on
20 01 // val = 1
\2sto 1A
20 01 // store in register - fence to NW
\2sto 1A
20 03 // store in register - fence to SE
\2rst
1A // all bits on
20 00 // val = 0
\2sto 1A
00 10 // store in register - normal/snow/desert offset
01
\wx001B 00 00
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2289 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0002 // real sprites

// For purchase list
2290 * 14	 02 04 03 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0004 // real sprites

2291 * 10	 03 04
01 26
01
FF \wx0003 // purchase
\wx0001

2292 * 64	 00 04 08 01 27
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay sprite
00 00 00 // x/y/z offset
10 10 03 // x/y/z extent

// 01 (y)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0000 // ground overlay sprite
00 00 00 // x/y/z offset
10 10 03 // x/y/z extent

0B 02 // use callback to determine layout

// Only allow 1 x 1
0C FE
0D FE

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

2293 * 4	 01 04 01 02
2294 images/newroads4.pcx 4 310 01 31 64 -31 0 // x
2295 images/newroads4.pcx 72 310 01 31 64 -31 0 // y

2296 * 7	 02 04
00 // ID
00 01
\w0

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2297 * 23	 02 04 02 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx0000 \w0 \w0
\wx0000

// Purchase
2298 * 18	 02 04 04 // ID
81
1A // all bits on
20 00 // val = 0
\2sto 1A
00 10 // store in register
01
\wx0000 00 00
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2299 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0002 // real sprites

// For purchase list
2300 * 14	 02 04 03 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0004 // real sprites

2301 * 10	 03 04
01 27
01
FF \wx0003 // purchase
\wx0001

2302 * 24	 00 04 08 01 28
08 "ISRI"

0A 27 // copy sprite layout

0B 02 // use callback to determine layout

// Only allow 1 x 1
0C FE
0D FE

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

2303 * 4	 01 04 01 02
2304 images/newroads4.pcx 4 348 01 31 64 -31 0 // x
2305 images/newroads4.pcx 72 348 01 31 64 -31 0 // y

2306 * 7	 02 04
00 // ID
00 01
\w0

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2307 * 23	 02 04 02 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx0000 \w0 \w0
\wx0000

// Purchase
2308 * 18	 02 04 04 // ID
81
1A // all bits on
20 00 // val = 0
\2sto 1A
00 10 // store in register
01
\wx0000 00 00
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2309 * 14	 02 04 01 // ID
81 0C // check variable 0C (callback number)
00 FF
01
\wx8000 14 14 // sprite layout
\wx0002 // real sprites

// For purchase list
2310 * 14	 02 04 03 // ID
81 0C // check variable 0C (callback number)
00 FF
01
\wx8000 14 14 // sprite layout
\wx0004 // real sprites

2311 * 10	 03 04
01 28
01
FF \wx0003 // purchase
\wx0001
2312 * 134	 00 04 06 01 29
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842D \wx0000 // back part
00 00 03 // x/y/z offset
10 05 30 // x/y/z extent
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842E \wx0000 // front part
00 0B 03 // x/y/z offset
10 05 42 // x/y/z extent

// 01 (y)
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000842F \wx0000 // back part
00 00 03 // x/y/z offset
05 10 30 // x/y/z extent
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80008430 \wx0000 // front part
0B 00 03 // x/y/z offset
05 10 42 // x/y/z extent

0B 02 // use callback to determine layout

0D FE // only allow a platform length of 1

11 00 // pylons (none)
14 FF // wires (none)

2313 * 4	 01 04 01 04
2314 images/newfixtures2.pcx 18 616 01 50 11 -19 -34 // x, back
2315 images/newfixtures2.pcx 33 616 01 67 27 -30 -53 // x, front
2316 images/newfixtures2.pcx 64 616 01 50 11 10 -34 // y, back
2317 images/newfixtures2.pcx 79 616 01 67 27 5 -53 // y, front

2318 * 7	 02 04 00 // ID
00 01
\w0

2319 * 14	 02 04 03 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx0000 // water tower sprites

2320 * 14	 02 04
01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0003 // real sprites

2321 * 7	 03 04
01 29
00
\wx0001

2322 * 116	 00 04 09 01 2A
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000842D \wx0000 // back platform with crane base
00 00 00 // x/y/z offset
10 05 10 // x/y/z extent
\dx80000431 \wx0002 // crane top
04 00 11 // x/y/z offset
0A 0A 06 // x/y/z extent
10 // register
\dx8000042E \wx0000 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent

// 01 (y)
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000842F \wx0000 // back platform with crane base
00 00 00 // x/y/z offset
05 10 10 // x/y/z extent
\dx80000438 \wx0002 // crane top
00 04 11 // x/y/z offset
0A 0A 06 // x/y/z extent
10 // register
\dx80000430 \wx0000 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent

0B 02 // use callback to determine layout

0D FE // only allow a platform length of 1

14 FF // wires (none)
11 00 // pylons (none)

16 \wx0113 // animation info 20 frames looping
17 04 // animation speed 2^4 ticks per frame (~400ms)
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

//@@WARNING DISABLE 100

2323 * 23	 02 04 16 // ID
85
7E B8 // get crane animation offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx00EF \w0 \w0
\wx00EF

//@@WARNING ENABLE 100

// Animation start/stop control
2324 * 18	 02 04 26 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD // do nothing

2325 * 23	 02 04 01 // ID
85 0C // callback
00 \wxFFFF
02
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0026 \wx0140 \wx0140 // animation control
\wx0016 // real sprites

2326 * 7	 03 04
01 2A
00
\wx0001
// The following animation callback code is used for all
// cranes in anim_cranes.nfo

// frame     : current frame of animation (0 to 225)
// a_frame   : adjusted frame number for direction change (0 to 112, 112 to 0)
// t_frame   : frame number for tile, crane is hidden in first and last positions

// Determine register values for sprite layout

// Get animation frame of south tile
2327 * 15	 02 04 0A // ID
81 41 // platform info and relative position
24 0F // position along platform from south
\2rst
7B 66 // animation frame of nearby tile using position from south as parameter
00 FF
00 // return frame
\wx8000

// Calculate a_frame for reverse movement
2328 * 15	 02 04 06 // ID
81 1A // all bits on
20 \b225 // max_frame
\2-
7D 25 // read register for frame of south tile
00 FF
00 // return a_frame = max_frame - frame
\wx8000

// Return a_frame for forward movement
2329 * 11	 02 04 07 // ID
81
7D 25 // read register for frame of south tile
00 FF
00 // return a_frame = frame
\wx8000

// Select movement direction
2330 * 19	 02 04 40 // ID
81 7E 0A // animation frame - south tile
20 FF
\2sto 1A
00 25 // store in register to prevent multiple calls to frame of nearby tile
01
\wx0007 \b0 \b112 // frames 0 to 112
\wx0006 // frames 113 to max

// Callback 141 - Next animation frame

// Calculate new frame for reverse movement - south tile
2331 * 14	 02 04 08 // ID
81 1A // all bits on
20 \b225 // max_frame
\2-
4A // animation frame
00 FF
00 // return new_frame = max_frame - frame
\wx8000

// Animation frame control - determine point to reverse direction
// {max_frame = (plat_length - 1) * 16}
2332 * 30	 02 04 09 // ID
81 41 // platform info and relative position
30 0F // platform length
\2< // result = min(val1, val2)
1A // all bits on
20 \b8 // result is capped at max 8
\2-
1A // all bits on
20 \b1 // val - 1

1A // all bits on
20 \b4 // val * 16 - gives max frame for this platform length
\2-
4A // animation frame
00 FF // subtract animation frame from max frame
01
\wx0008 00 00 // if animation frame = max frame, set new frame
\wx80FE // continue animation

// Next animation frame
2333 * 14	 02 04 41 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0009 00 00 // if most southerly tile
\wx80FE // continue

2334 * 154	 00 04 09 01 2B
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0000 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
\dx8000042E \wx0000 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
\dx80000431 \wx0013 // crane back
00 00 03 // x/y/z offset
0C 05 28 // x/y/z extent
01 06 11 12 // registers - show, sprite offset, x, y
\dx8000043C \wx0013 // crane front
00 0B 03 // x/y/z offset
0C 05 28 // x/y/z extent
01 06 11 12 // registers - show, sprite offset, x, y

// 01 (y)
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0000 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
\dx80000430 \wx0000 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
\dx80000447 \wx0013 // crane back
00 00 03 // x/y/z offset
05 0C 28 // x/y/z extent
01 06 12 11 // registers - show, sprite offset, x, y
\dx80000452 \wx0013 // crane front
0B 00 03 // x/y/z offset
05 0C 28 // x/y/z extent
01 06 12 11 // registers - show, sprite offset, x, y

0B 06 // use callback to determine layout and animation frame

0D 01 // disallow platform length 1
14 FF // wires (none)
11 00 // pylon placement (none)

16 \wx01E1 // animation info 226 frames looping
17 04 // animation speed 2^4 ticks per frame (~400ms)
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

// Callback 140 - Animation control

// Animation start/stop control
2335 * 18	 02 04 12 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD // do nothing

// Assign register values for sprite layout

// Frames
// frame:       0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...
// t_frame t0: 14 15 16 17 18 19 20 21 22 23 24 25 26 27
//         t1:        0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
//         t2:                                                        0  1  2  3  4  5  6  7  8  9 10 11 12...

// t1 sprite offset:     0  0  1  1  2  2  3  3  4  4  5  5  5  5  5  5  6  6  7  7  8  8  9  9 10 10
// t1 visible:        0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  0
// t1 x offset:          5  4  5  4  5  4  5  4  5  4  5  4  3  2  1  0  1  0  1  0  1  0  1  0  1  0

// Calculate t_frame {t_frame = a_frame + 14 - (p_pos * 16)}
2336 * 27	 02 04 10 // ID
81 7E 40 // get a_frame
20 FF
\2+
1A // all bits on
20 \b14 // val + 14
\2-
41 // platform info, get position along platform (from S)
20 F0 // shift 0 and mask 4 bits to give p_pos * 16
\2> // result = max(val1, val2)
1A // all bits on
20 \b0 // result is capped at min 0
\2< // result = min(val1, val2)
1A // all bits on
00 \b27 // result is capped at max 27
00 // return t_frame
\wx8000

// Select sprite offset
2337 * 55	 02 04 61 // ID
81 7E 10 // tile frame (0 to 12)
20 FF
\2sto 1A
00 21 // store in register to prevent calculating t_frame multiple times
0A
\wx8000 \b1 \b2
\wx8001 \b3 \b4
\wx8002 \b5 \b6
\wx8003 \b7 \b8
\wx8004 \b9 \b10
\wx8006 \b17 \b18
\wx8007 \b19 \b20
\wx8008 \b21 \b22
\wx8009 \b23 \b24
\wx800A \b25 \b26
\wx8005

// Check for animated tile
2338 * 14	 02 04 60 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0061 00 07 // if valid animation tile
\wx8000 // else

// Hide sprite
2339 * 15	 02 04 63 // ID
81
7D 21 // read register for t_frame
00 FF
01
\wx8001 \b1 \b26 // t_frame 1 to 26 - show
\wx8000 // hide

// Check for animated tile
2340 * 14	 02 04 62 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0063 00 07 // if valid animation tile
\wx8000 // hide

// Select sprite position x offset
2341 * 91	 02 04 65 // ID
81
7D 21 // read register for t_frame
00 FF
\b20
\wx8005 \b1 \b1
\wx8004 \b2 \b2
\wx8005 \b3 \b3
\wx8004 \b4 \b4
\wx8005 \b5 \b5
\wx8004 \b6 \b6
\wx8005 \b7 \b7
\wx8004 \b8 \b8
\wx8005 \b9 \b9
\wx8004 \b10 \b10
\wx8005 \b11 \b11
\wx8004 \b12 \b12
\wx8003 \b13 \b13
\wx8002 \b14 \b14
\wx8001 \b15 \b15
\wx8001 \b17 \b17
\wx8001 \b19 \b19
\wx8001 \b21 \b21
\wx8001 \b23 \b23
\wx8001 \b25 \b25
\wx8000

// Check for animated tile
2342 * 14	 02 04 64 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0065 00 07 // if valid animation tile
\wx8000 // else

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2343 * 55	 02 04 15 // ID
85
7E 60 // get crane sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - sprite offset
\2rst
7E 62 // get crane show/hide
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E 64 // get crane position offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - move x offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0012 // store in register - move y offset
01
\wx00CC \w0 \w0
\wx00CC

// Purchase
2344 * 52	 02 04 16 // ID
85
1A // all bits on
20 \w5 // val = 5
\2sto 1A
20 \wx0006 // store in register - sprite offset
\2rst
1A // all bits on
20 \w1 // val = 1
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
1A // all bits on
20 \w2 // val = 2
\2sto 1A
20 \wx0011 // store in register - move x offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0012 // store in register - move y offset
01
\wx00CC \w0 \w0
\wx00CC

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2345 * 29	 02 04 01 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0012 \wx0140 \wx0140 // animation control
\wx0041 \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
2346 * 17	 02 04 02 // ID
85 0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0016 // real sprites

2347 * 10	 03 04
01 2B
01
FF \wx0002 // purchase
\wx0001

2348 * 122	 00 04 09 01 2C
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0000 // back platform
00 00 00 // x/y/z offset
10 05 1A // x/y/z extent
\dx80000431 \wx0013 // crane
00 02 19 // x/y/z offset
09 0B 04 // x/y/z extent
01 06 11 12 // registers - show, sprite offset, x, y
\dx8000042E \wx0000 // front platform
00 0B 00 // x/y/z offset
10 05 1A // x/y/z extent

// 01 (y)
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0000 // back platform
00 00 00 // x/y/z offset
05 10 1A // x/y/z extent
\dx80000438 \wx0013 // crane
02 00 19 // x/y/z offset
0B 09 04 // x/y/z extent
01 06 12 11 // registers - show, sprite offset, x, y
\dx80000430 \wx0000 // front platform
0B 00 00 // x/y/z offset
05 10 1A // x/y/z extent

// Callback flags
0B 06 // use callback to determine layout and animation frame

0D 01 // disallow platform length 1
14 FF // wires (none)
11 00 // pylon placement (none)

16 \wx01E1 // animation info 226 frames looping
17 03 // animation speed 2^3 ticks per frame (~200ms)
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

2349 * 4	 01 04 01 12
2350 images/newfixtures2.pcx 18 508 09 44 42 -31 -24 // 042D x, back platform
2351 images/newfixtures2.pcx 71 508 09 44 42 -31 -24 // 042E x, front platform
2352 images/newfixtures2.pcx 161 508 09 44 42 -9 -24 // 042F y, back platform
2353 images/newfixtures2.pcx 209 508 09 44 42 -9 -24 // 0430 y, front platform

2354 images/newfixtures2.pcx 146 508 01 21 6 -1 3 // 0431 x, crane 1
2355 images/newfixtures2.pcx 142 508 01 21 10 -1 1 // 0432 x, crane 2
2356 images/newfixtures2.pcx 138 508 01 21 14 -1 -1 // 0433 x, crane 3
2357 images/newfixtures2.pcx 118 508 01 21 34 -17 -3 // 0434 x, crane 4 - 8 (6 - centre)
2358 images/newfixtures2.pcx 118 508 01 21 28 -13 -5 // 0435 x, crane 9
2359 images/newfixtures2.pcx 118 508 01 21 24 -9 -7 // 0436 x, crane 10
2360 images/newfixtures2.pcx 118 508 01 21 20 -5 -9 // 0437 x, crane 11

2361 images/newfixtures2.pcx 258 508 01 21 6 -3 3 // 0438 y, crane 1
2362 images/newfixtures2.pcx 258 508 01 21 10 -6 1 // 0439 y, crane 2
2363 images/newfixtures2.pcx 258 508 01 21 14 -11 -1 // 043A y, crane 3
2364 images/newfixtures2.pcx 258 508 01 21 34 -15 -3 // 043B y, crane 4 - 8 (6 - centre)
2365 images/newfixtures2.pcx 264 508 01 21 28 -13 -5 // 043C y, crane 9
2366 images/newfixtures2.pcx 268 508 01 21 24 -13 -7 // 043D y, crane 10
2367 images/newfixtures2.pcx 272 508 01 21 20 -13 -9 // 043E y, crane 11

2368 * 7	 02 04 00 // ID
00 01
\w0

// Callback 140 - Animation control

// Animation start/stop control
2369 * 18	 02 04 12 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD // do nothing

// Assign register values for sprite layout

// Frames
// frame:       0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
// t_frame t0: 12 13 14 15 16 17 18 19 20 21 22 23
//         t1:              0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
//         t2:                                                              0  1  2  3  4  5  6  7  8  9 10 ...

// t1 sprite offset:           0  0  1  1  2  2  3  3  3  3  3  3  3  3  3  3  4  4  5  5  6  6
// t1 visible:              0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  0
// t1 x offset:                9  8  9  8  9  8  9  8  7  6  5  4  3  2  1  0  1  0  1  0  1  0

// Calculate t_frame {t_frame = a_frame + 12 - (p_pos * 16)}
2370 * 27	 02 04 10 // ID
81 7E 40 // get a_frame
20 FF
\2+
1A // all bits on
20 \b12 // val + 12
\2-
41 // platform info, get position along platform (from S)
20 F0 // shift 0 and mask 4 bits to give p_pos * 16
\2> // result = max(val1, val2)
1A // all bits on
20 \b0 // result is capped at min 0
\2< // result = min(val1, val2)
1A // all bits on
00 \b23 // result is capped at max 23
00 // return t_frame
\wx8000

// Select sprite offset
2371 * 39	 02 04 61 // ID
81 7E 10 // tile frame (0 to 12)
20 FF
\2sto 1A
00 21 // store in register to prevent calculating t_frame multiple times
06
\wx8000 \b1 \b2
\wx8001 \b3 \b4
\wx8002 \b5 \b6
\wx8004 \b17 \b18
\wx8005 \b19 \b20
\wx8006 \b21 \b22
\wx8003

// Check for animated tile
2372 * 14	 02 04 60 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0061 00 07 // if valid animation tile
\wx8000 // else

// Hide sprite
2373 * 15	 02 04 63 // ID
81
7D 21 // read register for t_frame
00 FF
01
\wx8001 \b1 \b22 // t_frame 1 to 22 - show
\wx8000 // hide

// Check for animated tile
2374 * 14	 02 04 62 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0063 00 07 // if valid animation tile
\wx8000 // hide

// Select sprite position x offset
2375 * 83	 02 04 65 // ID
81
7D 21 // read register for t_frame
00 FF
\b18
\wx8009 \b1 \b1
\wx8008 \b2 \b2
\wx8009 \b3 \b3
\wx8008 \b4 \b4
\wx8009 \b5 \b5
\wx8008 \b6 \b6
\wx8009 \b7 \b7
\wx8008 \b8 \b8
\wx8007 \b9 \b9
\wx8006 \b10 \b10
\wx8005 \b11 \b11
\wx8004 \b12 \b12
\wx8003 \b13 \b13
\wx8002 \b14 \b14
\wx8001 \b15 \b15
\wx8001 \b17 \b17
\wx8001 \b19 \b19
\wx8001 \b21 \b21
\wx8000

// Check for animated tile
2376 * 14	 02 04 64 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0065 00 07 // if valid animation tile
\wx8000 // else

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2377 * 55	 02 04 15 // ID
85
7E 60 // get crane sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - sprite offset
\2rst
7E 62 // get crane show/hide
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E 64 // get crane position offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - move x offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0012 // store in register - move y offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
2378 * 52	 02 04 16 // ID
85
1A // all bits on
20 \w3 // val = 3
\2sto 1A
20 \wx0006 // store in register - sprite offset
\2rst
1A // all bits on
20 \w1 // val = 1
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
1A // all bits on
20 \w4 // val = 4
\2sto 1A
20 \wx0011 // store in register - move x offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0012 // store in register - move y offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2379 * 29	 02 04 01 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0012 \wx0140 \wx0140 // animation control
\wx0041 \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
2380 * 17	 02 04 02 // ID
85 0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0016 // real sprites

2381 * 10	 03 04
01 2C
01
FF \wx0002 // purchase
\wx0001
2382 * 262	 00 04 0A 01 2D
08 "ISRI"

// Sprite layout
1A 04
// 00 (x)
44
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843A \wx0007 // crane back
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent
01 05 12 // registers
\dx80008445 \wx0007 // crane front
00 0B 00 // x/y/z offset
10 05 0F // x/y/z extent
01 05 12 // registers
\dx8000842D \wx0007 // crane top
00 00 0F // x/y/z offset
10 10 23 // x/y/z extent
02 06 12 // registers

// 01 (y)
44
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000846A \wx0007 // crane back
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent
01 05 12 // registers
\dx80008475 \wx0007 // crane front
0B 00 00 // x/y/z offset
05 10 0F // x/y/z extent
01 05 12 // registers
\dx8000845D \wx0007 // crane top
00 00 0F // x/y/z offset
10 10 23 // x/y/z extent
02 06 12 // registers

// 02 (x) purchase
44
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043F \wx0000 // crane back
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent
\dx8000044A \wx0000 // crane front
00 0B 00 // x/y/z offset
10 05 0F // x/y/z extent
\dx80000433 \wx0000 // crane top
00 00 0F // x/y/z offset
10 10 23 // x/y/z extent

// 03 (y) purchase
44
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000046F \wx0000 // crane back
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent
\dx8000047A \wx0000 // crane front
0B 00 00 // x/y/z offset
05 10 0F // x/y/z extent
\dx80000463 \wx0000 // crane top
00 00 0F // x/y/z offset
10 10 23 // x/y/z extent

0C FE // only allow 1 platform
0D F1 // disallow platform length 1 and > 4

14 FF // wires (none)
11 00 // pylon placement (none)

16 \wx01F3 // animation info 244 frames looping
17 05 // animation speed 2^5 ticks per frame (~800ms), changed by callback 142
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

0B 0F // use callback to determine date availability (1), layout (2), animation frame (4) and animation speed (8)

2383 * 4	 01 04 01 04
2384 images/newgantry1.pcx 556 7 01 31 64 -31 0 // 042D x, platforms with crane rails
2385 images/newgantry1.pcx 624 7 01 31 64 -31 0 // 042E y, platforms with crane rails
2386 images/newgantry1.pcx 238 7 01 31 64 -31 0 // 042F x, non-track tiles with crane rails
2387 images/newgantry1.pcx 398 7 01 31 64 -31 0 // 0430 y, non-track tiles with crane rails

2388 * 7	 02 04
80 // ID
00 01
\w0

2389 * 4	 01 04 01 60
2390 images/newgantry1.pcx 792 166 01 54 21 -14 -19 // 042D x, top 0
2391 images/newgantry1.pcx 788 166 01 54 25 -14 -21 // 042E x, top 1
2392 images/newgantry1.pcx 784 166 01 54 29 -14 -23 // 042F x, top 2
2393 images/newgantry1.pcx 780 166 01 54 33 -14 -25 // 0430 x, top 3
2394 images/newgantry1.pcx 776 166 01 54 37 -14 -27 // 0431 x, top 4
2395 images/newgantry1.pcx 754 166 01 54 59 -32 -29 // 0432 x, top 5
2396 images/newgantry1.pcx 754 166 01 54 59 -28 -31 // 0433 x, top 6 - mid posn
2397 images/newgantry1.pcx 754 166 01 54 59 -24 -33 // 0434 x, top 7
2398 images/newgantry1.pcx 754 166 01 54 38 -20 -35 // 0435 x, top 8
2399 images/newgantry1.pcx 754 166 01 54 34 -16 -37 // 0436 x, top 9
2400 images/newgantry1.pcx 754 166 01 54 30 -12 -39 // 0437 x, top 10
2401 images/newgantry1.pcx 754 166 01 54 26 -8 -41 // 0438 x, top 11
2402 images/newgantry1.pcx 754 166 01 54 22 -4 -43 // 0439 x, top 12

2403 images/newgantry1.pcx 139 7 01 23 6 -24 2 // 043A x, back 0
2404 images/newgantry1.pcx 135 7 01 23 10 -24 0 // 043B x, back 1
2405 images/newgantry1.pcx 131 7 01 23 14 -24 -2 // 043C x, back 2
2406 images/newgantry1.pcx 126 7 01 23 19 -25 -4 // 043D x, back 3
2407 images/newgantry1.pcx 126 7 01 23 19 -21 -6 // 043E x, back 4
2408 images/newgantry1.pcx 126 7 01 23 19 -17 -8 // 043F x, back 5 - mid posn
2409 images/newgantry1.pcx 126 7 01 23 19 -13 -10 // 0440 x, back 6
2410 images/newgantry1.pcx 126 7 01 23 19 -9 -12 // 0441 x, back 7
2411 images/newgantry1.pcx 126 7 01 23 13 -5 -14 // 0442 x, back 8
2412 images/newgantry1.pcx 126 7 01 23 9 -1 -16 // 0443 x, back 9
2413 images/newgantry1.pcx 126 7 01 23 5 3 -18 // 0444 x, back 10

2414 images/newgantry1.pcx 163 7 01 23 8 -26 0 // 0445 x, front 0
2415 images/newgantry1.pcx 159 7 01 23 12 -26 -2 // 0446 x, front 1
2416 images/newgantry1.pcx 155 7 01 23 16 -26 -4 // 0447 x, front 2
2417 images/newgantry1.pcx 148 7 01 23 23 -29 -6 // 0448 x, front 3
2418 images/newgantry1.pcx 148 7 01 23 23 -25 -8 // 0449 x, front 4
2419 images/newgantry1.pcx 148 7 01 23 23 -21 -10 // 044A x, front 5 - mid posn
2420 images/newgantry1.pcx 148 7 01 23 23 -17 -12 // 044B x, front 6
2421 images/newgantry1.pcx 148 7 01 23 23 -13 -14 // 044C x, front 7
2422 images/newgantry1.pcx 148 7 01 23 15 -9 -16 // 044D x, front 8
2423 images/newgantry1.pcx 148 7 01 23 11 -5 -18 // 044E x, front 9
2424 images/newgantry1.pcx 148 7 01 23 7 -1 -20 // 044F x, front 10

2425 images/newgantry1.pcx 754 166 01 54 59 -28 -31 // 0450 x, top traverse 35 - in
2426 images/newgantry1.pcx 692 166 01 54 59 -28 -31 // 0451 x, top traverse 36
2427 images/newgantry1.pcx 630 166 01 54 59 -28 -31 // 0452 x, top traverse 37
2428 images/newgantry1.pcx 568 166 01 54 59 -28 -31 // 0453 x, top traverse 38
2429 images/newgantry1.pcx 506 166 01 54 59 -28 -31 // 0454 x, top traverse 39
2430 images/newgantry1.pcx 444 166 01 54 59 -28 -31 // 0455 x, top traverse 40
2431 images/newgantry1.pcx 382 166 01 54 59 -28 -31 // 0456 x, top traverse 41
2432 images/newgantry1.pcx 320 166 01 54 59 -28 -31 // 0457 x, top traverse 42
2433 images/newgantry1.pcx 258 166 01 54 59 -28 -31 // 0458 x, top traverse 43
2434 images/newgantry1.pcx 196 166 01 54 59 -28 -31 // 0459 x, top traverse 44
2435 images/newgantry1.pcx 134 166 01 54 59 -28 -31 // 045A x, top traverse 45
2436 images/newgantry1.pcx 72 166 01 54 59 -28 -31 // 045B x, top traverse 46
2437 images/newgantry1.pcx 9 166 01 54 60 -29 -31 // 045C x, top traverse 47 - out

2438 images/newgantry1.pcx 754 231 01 54 21 -5 -19 // 045D y, top 0
2439 images/newgantry1.pcx 754 231 01 54 25 -9 -21 // 045E y, top 1
2440 images/newgantry1.pcx 754 231 01 54 29 -13 -23 // 045F y, top 2
2441 images/newgantry1.pcx 754 231 01 54 33 -17 -25 // 0460 y, top 3
2442 images/newgantry1.pcx 754 231 01 54 37 -21 -27 // 0461 y, top 4
2443 images/newgantry1.pcx 754 231 01 54 59 -25 -29 // 0462 y, top 5
2444 images/newgantry1.pcx 754 231 01 54 59 -29 -31 // 0463 y, top 6 - mid posn
2445 images/newgantry1.pcx 754 231 01 54 59 -33 -33 // 0464 y, top 7
2446 images/newgantry1.pcx 775 231 01 54 38 -16 -35 // 0465 y, top 8
2447 images/newgantry1.pcx 779 231 01 54 34 -16 -37 // 0466 y, top 9
2448 images/newgantry1.pcx 783 231 01 54 30 -16 -39 // 0467 y, top 10
2449 images/newgantry1.pcx 787 231 01 54 26 -16 -41 // 0468 y, top 11
2450 images/newgantry1.pcx 791 231 01 54 22 -16 -43 // 0469 y, top 12

2451 images/newgantry1.pcx 182 7 01 23 6 20 2 // 046A y, back 0
2452 images/newgantry1.pcx 182 7 01 23 10 16 0 // 046B y, back 1
2453 images/newgantry1.pcx 182 7 01 23 14 12 -2 // 046C y, back 2
2454 images/newgantry1.pcx 182 7 01 23 19 8 -4 // 046D y, back 3
2455 images/newgantry1.pcx 182 7 01 23 19 4 -6 // 046E y, back 4
2456 images/newgantry1.pcx 182 7 01 23 19 0 -8 // 046F y, back 5 - mid posn
2457 images/newgantry1.pcx 182 7 01 23 19 -4 -10 // 0470 y, back 6
2458 images/newgantry1.pcx 182 7 01 23 19 -8 -12 // 0471 y, back 7
2459 images/newgantry1.pcx 188 7 01 23 13 -6 -14 // 0472 y, back 8
2460 images/newgantry1.pcx 192 7 01 23 9 -6 -16 // 0473 y, back 9
2461 images/newgantry1.pcx 196 7 01 23 5 -6 -18 // 0474 y, back 10

2462 images/newgantry1.pcx 204 7 01 29 8 18 -6 // 0475 y, front 0
2463 images/newgantry1.pcx 204 7 01 29 12 14 -8 // 0476 y, front 1
2464 images/newgantry1.pcx 204 7 01 29 16 10 -10 // 0477 y, front 2
2465 images/newgantry1.pcx 204 7 01 29 25 6 -12 // 0478 y, front 3
2466 images/newgantry1.pcx 204 7 01 29 25 2 -14 // 0479 y, front 4
2467 images/newgantry1.pcx 204 7 01 29 25 -2 -16 // 047A y, front 5 - mid posn
2468 images/newgantry1.pcx 204 7 01 29 25 -6 -18 // 047B y, front 6
2469 images/newgantry1.pcx 204 7 01 29 25 -10 -20 // 047C y, front 7
2470 images/newgantry1.pcx 212 7 01 29 17 -6 -22 // 047D y, front 8
2471 images/newgantry1.pcx 216 7 01 29 13 -6 -24 // 047E y, front 9
2472 images/newgantry1.pcx 220 7 01 29 9 -6 -26 // 047F y, front 10

2473 images/newgantry1.pcx 754 231 01 54 59 -29 -31 // 0480 y, top traverse 35 - in
2474 images/newgantry1.pcx 692 231 01 54 59 -29 -31 // 0481 y, top traverse 36
2475 images/newgantry1.pcx 630 231 01 54 59 -29 -31 // 0482 y, top traverse 37
2476 images/newgantry1.pcx 568 231 01 54 59 -29 -31 // 0483 y, top traverse 38
2477 images/newgantry1.pcx 506 231 01 54 59 -29 -31 // 0484 y, top traverse 39
2478 images/newgantry1.pcx 444 231 01 54 59 -29 -31 // 0485 y, top traverse 40
2479 images/newgantry1.pcx 382 231 01 54 59 -29 -31 // 0486 y, top traverse 41
2480 images/newgantry1.pcx 320 231 01 54 59 -29 -31 // 0487 y, top traverse 42
2481 images/newgantry1.pcx 258 231 01 54 59 -29 -31 // 0488 y, top traverse 43
2482 images/newgantry1.pcx 196 231 01 54 59 -29 -31 // 0489 y, top traverse 44
2483 images/newgantry1.pcx 134 231 01 54 59 -29 -31 // 048A y, top traverse 45
2484 images/newgantry1.pcx 72 231 01 54 59 -29 -31 // 048B y, top traverse 46
2485 images/newgantry1.pcx 9 231 01 54 60 -29 -31 // 048C y, top traverse 47 - out

2486 * 7	 02 04
00 // ID
00 01
\w0

// frame     : current frame of animation (0 to 243)
// a_frame   : adjusted frame number for direction change (0 to 121, 121 to 0)
// t_frame   : frame number for tile (0 to 46)

// Frames
// frame:       0  1  2 ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ... 37 38 39 40 41 42 43 44 ... 53 54 55 56 57 58 59 60 61 62 63 64 65 ...
// t_frame t0: 23 24 25 ... 37 38 39 40 41 42 43 44 45 46
//         t1:                        0  1  2  3  4  5  6  7  8  9 10 11 ... 20 21 22 23 24 25 26 27 ... 36 37 38 39 40 41 42 43 44 45 46
//         t2:                                                                                                        0  1  2  3  4  5  6  7  8 ...

// t1 movement:                         |  along platform   | -  -|   traverse out   | -  -|   traverse in    | -  -| along platform |
// t1 sprite offset (top):               0  1  2  3  4  5  6  6  6 35 36 ... 45 46 47 47 47 47 46 45 ... 36 35  6  6  7  8  9 10 11 12
// t1 visible (top):                  0  1  1  1  1  1  1  1  1  1  1  1 ...  1  1  1  1  1  1  1  1 ...  1  1  1  1  1  1  1  1  1  1  0
// t1 sprite offset (side):                 0  1  2  3  4  5  5  5  5  5 ...  5  5  5  5  5  5  5  5 ...  5  5  5  5  6  7  8  9 10
// t1 visible (side):                 0  0  1  1  1  1  1  1  1  1  1  1 ...  1  1  1  1  1  1  1  1 ...  1  1  1  1  1  1  1  1  1  0  0

// Test variable 10 for real sprites
2487 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0000 // crane sprites

// Assign register values for sprite layout

// Get animation frame of south tile
2488 * 15	 02 04 0A // ID
81 41 // platform info and relative position
24 0F // position along platform from south
\2rst
7B 66 // animation frame of nearby tile using position from south as parameter
00 FF
00 // return frame
\wx8000

// Calculate a_frame for reverse movement
2489 * 15	 02 04 50 // ID
81 1A // all bits on
20 \b243 // max_frame
\2-
7D 25 // read register for frame of south tile
00 FF
00 // return a_frame = max_frame - frame
\wx8000

// Set a_frame to frame for forward movement
2490 * 11	 02 04 51 // ID
81
7D 25 // read register for frame of south tile
00 FF
00 // return a_frame = frame
\wx8000

// Select movement direction
2491 * 19	 02 04 52 // ID
81 7E 0A // animation frame - south tile
20 FF
\2sto 1A
00 25 // store in register to prevent multiple calls to frame of nearby tile
01
\wx0051 \b0 \b121 // frames 0 to 121
\wx0050 // frames 122 to max

// Calculate t_frame {t_frame = (a_frame + 23) - (p_pos * 40)}
2492 * 42	 02 04 53 // ID
85 1A // all bits on
20 \wx0000
\2-
41 // platform info and relative position
24 \wx000F // position along platform from south
\2*
1A // all bits on
20 \w40 // val * 40
\2+
7E 52 // get a_frame
20 \wxFFFF
\2+
1A // all bits on
20 \w23 // val + 23
\2> // result = max(val1, val2)
1A // all bits on
20 \w0 // result is capped at min 0
\2< // result = min(val1, val2)
1A // all bits on
00 \w46 // result is capped at max 46
00 // return t_frame
\wx8000

// Top part sprite offsets
// Move along platform - return {t_frame - 1}
2493 * 19	 02 04 54 // ID
81
7D 21 // read register for t_frame
20 FF
\2-
1A // all bits on
20 \b1 // val - 1
\2> // result = max(val1, val2)
1A // all bits on
00 \b0 // result is capped at min 0
00 // return sprite offset
\wx8000

// Move along platform - return {t_frame - 33}
2494 * 19	 02 04 55 // ID
81
7D 21 // read register for t_frame
20 FF
\2-
1A // all bits on
20 \b33 // val - 33
\2< // result = min(val1, val2)
1A // all bits on
00 \b12 // result is capped at max 12
00 // return sprite offset
\wx8000

// Sideways movement (traverse out) - return {(t_frame - 10) + 35}
//                                         = {t_frame + 25}
2495 * 15	 02 04 56 // ID
81
7D 21 // read register for t_frame
20 FF
\2+
1A // all bits on
00 \b25 // val + 25
00 // return sprite offset
\wx8000

// Sideways movement (traverse in) - return {(37 - t_frame) + 35}
//                                        = {72 - t_frame}
2496 * 15	 02 04 57 // ID
81 1A // all bits on
20 \b72 // val = 72
\2-
7D 21 // read register for t_frame
00 FF
00 // return sprite offset
\wx8000

// Side sprite offsets
// Move along platform - return {t_frame - 2}
2497 * 19	 02 04 66 // ID
81
7D 21 // read register for t_frame
20 FF
\2-
1A // all bits on
20 \b2 // val - 2
\2> // result = max(val1, val2)
1A // all bits on
00 \b0 // result is capped at min 0
00 // return sprite offset
\wx8000

// Move along platform - return {t_frame - 34}
2498 * 19	 02 04 67 // ID
81
7D 21 // read register for t_frame
20 FF
\2-
1A // all bits on
20 \b34 // val - 34
\2< // result = min(val1, val2)
1A // all bits on
00 \b10 // result is capped at max 10
00 // return sprite offset
\wx8000

// Side sprite selection
// Select sprite offset for sides
2499 * 23	 02 04 65 // ID
81
7E 53 // get tile frame (0 to 46)
20 FF
\2sto 1A
00 21 // store in register to prevent calculating t_frame multiple times
02
\wx0066 \b0 \b7 // t_frame 0 to 7 - move along platform - {t_frame - 2}
\wx8005 \b8 \b39 // t_frame 8 to 39 - pause
\wx0067 // t_frame 40 to max - move along platform - {t_frame - 34}

// Check for animated tile
2500 * 14	 02 04 64 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0065 00 03 // if valid animation tile
\wx8000 // hide

// Hide sprite side
2501 * 15	 02 04 69 // ID
81
7D 21 // read register for t_frame
00 FF
01
\wx8001 \b2 \b44 // t_frame 2 to 44 - show
\wx8000 // hide

// Check for animated tile
2502 * 14	 02 04 68 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0069 00 03 // if valid animation tile
\wx8000 // hide

// Top part sprite selection
// Hide sprite top
2503 * 15	 02 04 63 // ID
81
7D 21 // read register 21 for t_frame
00 FF
01
\wx8001 \b1 \b45 // t_frame 1 to 45 - show
\wx8000 // hide

// Check for animated tile
2504 * 14	 02 04 62 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0063 00 03 // if valid animation tile
\wx8000 // hide

// Select sprite offset for top
2505 * 35	 02 04 61 // ID
81
7D 21 // read register for t_frame
00 FF
06
\wx0054 \b0 \b7 // t_frame 0 to 7 - move along platform - {t_frame - 1}
\wx8006 \b8 \b9 // t_frame 8 to 9 - pause
\wx0056 \b10 \b22 // t_frame 10 to 22 - move out (traverse) - {(t_frame - 10) + 35}
\wx802F \b23 \b24 // t_frame 23 to 24 - pause
\wx0057 \b25 \b37 // t_frame 25 to 37 - move in (traverse) - {(37 - t_frame) + 35}
\wx8006 \b38 \b39 // t_frame 38 to 39 - pause
\wx0055 // t_frame 40 to max - move along platform - {t_frame - 33}

// Check for animated tile
2506 * 14	 02 04 60 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0061 00 03 // if valid animation tile
\wx8000 // hide

// Selection of recolour sprite
2507 * 12	 02 04 6A // ID
85
7F 10 // read parameter for recolour sprite base
00 \wx7FFF // 1st recolour sprite needs no offset
00
\wx8000

2508 * 17	 02 04 6B // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
00 \w1 // add offset of 2nd recolour sprite
00
\wx8000

2509 * 17	 02 04 6C // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
00 \w2 // add offset of 3rd recolour sprite
00
\wx8000

// Random colours
2510 * 15	 02 04 02 // ID
80
00 // don't re-randomise
00 // use bits 0 and 1
04
\wx8000
\wx006A
\wx006B
\wx006C

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2511 * 84	 02 04 15 // ID
85
7E 02 // get random colours
20 \wx7FFF
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 64 // get sprite offset for sides
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - side sprite offset
\2rst
7E 60 // get sprite offset for top
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - top sprite offset
\2rst
7E 68 // get hide/show flag for sides
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane sides flag
\2rst
7E 62 // get hide/show flag for top
20 \wx7FFF
\2sto 1A
20 \wx0002 // store in register- show crane top flag
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 140 - Animation control

2512 * 18	 02 04 5B // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD

// Callback 141 - Next animation frame

// Calculate new frame for reverse movement
2513 * 16	 02 04 5D // ID
85 1A // all bits on
20 \w243 // max_frame = 243
\2-
4A // animation frame
00 \wx00FF
00 // return new_frame = max_frame - frame
\wx8000

// Animation frame control - determine point to reverse direction
// {max frame = (plat_len - 1) * 40)}
2514 * 37	 02 04 5E // ID
85 41 // platform info and relative position
30 \wx000F // platform length
\2< // result = min(val1, val2)
1A // all bits on
20 \w4 // result is capped at max 4
\2-
1A // all bits on
20 \w1 // val - 1
\2*
1A // all bits on
20 \w40 // val * 40 - gives max frame for this platform length
\2-
4A // animation frame
00 \wx00FF // subtract animation frame from max frame
01
\wx005D \w0 \w0 // if animation frame = max frame, set new frame
\wx80FE // continue

// Next animation frame
2515 * 14	 02 04 5C // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx005E 00 00 // if most southerly tile
\wx80FE // continue

// Callback 142 - Animation speed

2516 * 27	 02 04 5F // ID
81 7E 52 // get a_frame (0 to 121)
00 FF
04
\wx8003 \b0 \b14 // a_frame 0 to 14 - move in/out (traverse)
\wx8003 \b27 \b54 // a_frame 27 to 54 - move in/out (traverse)
\wx8003 \b67 \b94 // a_frame 67 tp 94 - move in/out (traverse)
\wx8003 \b107 \b121 // a_frame 107 to 121 - move in/out (traverse)
\wx8005 // else - move along platform

// Check for availability
2517 * 14	 02 04 0C // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1960 // do not allow build before 1960
\wx8001

2518 * 35	 02 04 10 // ID
85 0C // callback
00 \wxFFFF
04
\wx8000 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx005C \wx0141 \wx0141 // animation frame
\wx005F \wx0142 \wx0142 // animation speed
\wx0015 // real sprites

// For purchase list
2519 * 23	 02 04 11 // ID
85 0C // callback
00 \wxFFFF
02
\wx000C \wx0013 \wx0013 // date availability
\wx8002 \wx0014 \wx0014 // sprite layout (crane at tile centre)
\wx001B // real sprites

2520 * 10	 03 04
01 2D
01
FF \wx0011 // purchase
\wx0010

2521 * 158	 00 04 0B 01 2E
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
44
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042F \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843A \wx0007 // crane back
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent
01 05 12 // registers
\dx80008445 \wx0007 // crane front
00 0B 00 // x/y/z offset
10 05 0F // x/y/z extent
01 05 12 // registers
\dx8000842D \wx0007 // crane top
00 00 0F // x/y/z offset
10 10 23 // x/y/z extent
02 06 12 // registers

// 01 (y)
44
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx80000430 \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000846A \wx0007 // crane back
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent
01 05 12 // registers
\dx80008475 \wx0007 // crane front
0B 00 00 // x/y/z offset
05 10 0F // x/y/z extent
01 05 12 // registers
\dx8000845D \wx0007 // crane top
00 00 0F // x/y/z offset
10 10 23 // x/y/z extent
02 06 12 // registers

0C FE // only allow 1 platform
0D F1 // disallow platform length 1 and > 4

14 FF // wires (none)
11 00 // pylon placement (none)

15 FF // prevent trains entering the tile

16 \wx01F3 // animation info 244 frames looping
17 05 // animation speed 2^5 ticks per frame (~800ms), changed by callback 142
18 \wx0006 // animation triggers - cargo arrives (2), cargo removed (4)

0B 0F // use callback to determine date availability (1), layout (2), animation frame (4) and animation speed (8)

// Test variable 10 for real sprites
2522 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0000 // crane sprites

// Assign register values for sprite layout

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2523 * 78	 02 04 15 // ID
85
7E 02 // get random recolour sprites
20 \wx7FFF
\2sto 1A
20 \wx0012 // store in register - recolour sprite
\2rst
7E 64 // get sprite offset for sides
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - side sprite offset
\2rst
7E 60 // get sprite offset for top
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - top sprite offset
\2rst
7E 68 // get hide/show flag for sides
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane sides flag
\2rst
7E 62 // get hide/show flag for top
20 \wx7FFF
\2sto 1A
20 \wx0002 // store in register - show crane top flag
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
2524 * 67	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
1A // all bits on
20 \w5 // val = 5
\2sto 1A
20 \wx0005 // store in register - side sprite offset
\2rst
1A // all bits on
20 \w6 // val = 6
\2sto 1A
20 \wx0006 // store in register - top sprite offset
\2rst
1A // all bits on
20 \w1 // val = 1
\2sto 1A
20 \wx0001 // store in register - show crane sides flag
\2sto 1A
20 \wx0002 // store in register - show crane top flag
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 140 - Animation control

2525 * 18	 02 04 5B // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 01 01 // cargo arrives - start
\wx80FF 02 02 // cargo completely taken - stop
\wx80FD // do nothing

2526 * 35	 02 04 10 // ID
85 0C // callback
00 \wxFFFF
04
\wx8000 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx005C \wx0141 \wx0141 // animation frame
\wx005F \wx0142 \wx0142 // animation speed
\wx0015 // real sprites

// For purchase list
2527 * 23	 02 04 11 // ID
85 0C // callback
00 \wxFFFF
02
\wx000C \wx0013 \wx0013 // date availability
\wx8000 \wx0014 \wx0014 // sprite layout (crane at tile centre)
\wx0016 // real sprites

2528 * 10	 03 04
01 2E
01
FF \wx0011 // purchase
\wx0010

2529 * 30	 00 04 0A 01 2F
08 "ISRI"
0A 2D // copy sprite layout

0C FE // only allow 1 platform
0D F1 // disallow platform length 1 and > 4

14 FF // wires (none)
11 00 // pylon placement (none)

16 \wx01F3 // animation info 244 frames looping
17 05 // animation speed 2^5 ticks per frame (~800ms), changed by callback 142
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

0B 0F // use callback to determine date availability (1), layout (2), animation frame (4) and animation speed (8)

2530 * 4	 01 04 01 60
2531 images/newgantry1.pcx 851 47 01 47 21 -14 -12 // 042D x, top 0
2532 images/newgantry1.pcx 847 47 01 47 25 -14 -14 // 042E x, top 1
2533 images/newgantry1.pcx 843 47 01 47 29 -14 -16 // 042F x, top 2
2534 images/newgantry1.pcx 839 47 01 47 33 -14 -18 // 0430 x, top 3
2535 images/newgantry1.pcx 835 47 01 47 37 -14 -20 // 0431 x, top 4
2536 images/newgantry1.pcx 813 47 01 47 59 -32 -22 // 0432 x, top 5
2537 images/newgantry1.pcx 813 47 01 47 59 -28 -24 // 0433 x, top 6 - mid posnposn
2538 images/newgantry1.pcx 813 47 01 47 59 -24 -26 // 0434 x, top 7
2539 images/newgantry1.pcx 813 47 01 47 38 -20 -28 // 0435 x, top 8
2540 images/newgantry1.pcx 813 47 01 47 34 -16 -30 // 0436 x, top 9
2541 images/newgantry1.pcx 813 47 01 47 30 -12 -32 // 0437 x, top 10
2542 images/newgantry1.pcx 813 47 01 47 26 -8 -34 // 0438 x, top 11
2543 images/newgantry1.pcx 813 47 01 47 22 -4 -36 // 0439 x, top 12

2544 images/newgantry1.pcx 22 7 01 31 6 -24 -6 // 043A x, back 0
2545 images/newgantry1.pcx 18 7 01 31 10 -24 -8 // 043B x, back 1
2546 images/newgantry1.pcx 14 7 01 31 14 -24 -10 // 043C x, back 2
2547 images/newgantry1.pcx 9 7 01 31 19 -25 -12 // 043D x, back 3
2548 images/newgantry1.pcx 9 7 01 31 19 -21 -14 // 043E x, back 4
2549 images/newgantry1.pcx 9 7 01 31 19 -17 -16 // 043F x, back 5 - mid posnposn
2550 images/newgantry1.pcx 9 7 01 31 19 -13 -18 // 0440 x, back 6
2551 images/newgantry1.pcx 9 7 01 31 19 -9 -20 // 0441 x, back 7
2552 images/newgantry1.pcx 9 7 01 31 13 -5 -22 // 0442 x, back 8
2553 images/newgantry1.pcx 9 7 01 31 9 -1 -24 // 0443 x, back 9
2554 images/newgantry1.pcx 9 7 01 31 5 3 -26 // 0444 x, back 10

2555 images/newgantry1.pcx 47 7 01 23 8 -26 0 // 0445 x, front 0
2556 images/newgantry1.pcx 43 7 01 23 12 -26 -2 // 0446 x, front 1
2557 images/newgantry1.pcx 39 7 01 23 16 -26 -4 // 0447 x, front 2
2558 images/newgantry1.pcx 32 7 01 23 23 -29 -6 // 0448 x, front 3
2559 images/newgantry1.pcx 32 7 01 23 23 -25 -8 // 0449 x, front 4
2560 images/newgantry1.pcx 32 7 01 23 23 -21 -10 // 044A x, front 5 - mid posn posn
2561 images/newgantry1.pcx 32 7 01 23 23 -17 -12 // 044B x, front 6
2562 images/newgantry1.pcx 32 7 01 23 23 -13 -14 // 044C x, front 7
2563 images/newgantry1.pcx 32 7 01 23 15 -9 -16 // 044D x, front 8
2564 images/newgantry1.pcx 32 7 01 23 11 -5 -18 // 044E x, front 9
2565 images/newgantry1.pcx 32 7 01 23 7 -1 -20 // 044F x, front 10

2566 images/newgantry1.pcx 751 47 01 47 59 -28 -24 // 0450 x, top 35 - in
2567 images/newgantry1.pcx 690 47 01 47 59 -28 -24 // 0451 x, top 36
2568 images/newgantry1.pcx 628 47 01 47 59 -28 -24 // 0452 x, top 37
2569 images/newgantry1.pcx 566 47 01 47 59 -28 -24 // 0453 x, top 38
2570 images/newgantry1.pcx 504 47 01 47 59 -28 -24 // 0454 x, top 39
2571 images/newgantry1.pcx 442 47 01 47 59 -28 -24 // 0455 x, top 40
2572 images/newgantry1.pcx 381 47 01 47 59 -28 -24 // 0456 x, top 41
2573 images/newgantry1.pcx 319 47 01 47 59 -28 -24 // 0457 x, top 42
2574 images/newgantry1.pcx 257 47 01 47 59 -28 -24 // 0458 x, top 43
2575 images/newgantry1.pcx 195 47 01 47 59 -28 -24 // 0459 x, top 44
2576 images/newgantry1.pcx 133 47 01 47 59 -28 -24 // 045A x, top 45
2577 images/newgantry1.pcx 71 47 01 48 59 -28 -24 // 045B x, top 46
2578 images/newgantry1.pcx 9 47 01 49 59 -28 -24 // 045C x, top 47 - out

2579 images/newgantry1.pcx 815 107 01 47 21 -5 -12 // 045D y, top 0
2580 images/newgantry1.pcx 815 107 01 47 25 -9 -14 // 045E y, top 1
2581 images/newgantry1.pcx 815 107 01 47 29 -13 -16 // 045F y, top 2
2582 images/newgantry1.pcx 815 107 01 47 33 -17 -18 // 0460 y, top 3
2583 images/newgantry1.pcx 815 107 01 47 37 -21 -20 // 0461 y, top 4
2584 images/newgantry1.pcx 815 107 01 47 59 -25 -22 // 0462 y, top 5
2585 images/newgantry1.pcx 815 107 01 47 59 -29 -24 // 0463 y, top 6 - mid posnposn
2586 images/newgantry1.pcx 815 107 01 47 59 -33 -26 // 0464 y, top 7
2587 images/newgantry1.pcx 836 107 01 47 38 -16 -28 // 0465 y, top 8
2588 images/newgantry1.pcx 840 107 01 47 34 -16 -30 // 0466 y, top 9
2589 images/newgantry1.pcx 844 107 01 47 30 -16 -32 // 0467 y, top 10
2590 images/newgantry1.pcx 848 107 01 47 26 -16 -34 // 0468 y, top 11
2591 images/newgantry1.pcx 852 107 01 47 22 -16 -36 // 0469 y, top 12

2592 images/newgantry1.pcx 66 7 01 23 8 20 2 // 046A y, back 0
2593 images/newgantry1.pcx 66 7 01 23 12 16 0 // 046B y, back 1
2594 images/newgantry1.pcx 66 7 01 23 16 12 -2 // 046C y, back 2
2595 images/newgantry1.pcx 66 7 01 23 23 8 -4 // 046D y, back 3
2596 images/newgantry1.pcx 66 7 01 23 23 4 -6 // 046E y, back 4
2597 images/newgantry1.pcx 66 7 01 23 23 0 -8 // 046F y, back 5 - mid posnposn
2598 images/newgantry1.pcx 66 7 01 23 23 -4 -10 // 0470 y, back 6
2599 images/newgantry1.pcx 66 7 01 23 23 -8 -12 // 0471 y, back 7
2600 images/newgantry1.pcx 74 7 01 23 15 -4 -14 // 0472 y, back 8
2601 images/newgantry1.pcx 78 7 01 23 11 -4 -16 // 0473 y, back 9
2602 images/newgantry1.pcx 82 7 01 23 7 -4 -18 // 0474 y, back 10

2603 images/newgantry1.pcx 92 7 01 23 8 20 0 // 0475 y, front 0
2604 images/newgantry1.pcx 92 7 01 23 12 16 -2 // 0476 y, front 1
2605 images/newgantry1.pcx 92 7 01 23 16 12 -4 // 0477 y, front 2
2606 images/newgantry1.pcx 92 7 01 23 23 8 -6 // 0478 y, front 3
2607 images/newgantry1.pcx 92 7 01 23 23 4 -8 // 0479 y, front 4
2608 images/newgantry1.pcx 92 7 01 23 23 0 -10 // 047A y, front 5 - mid posn posn
2609 images/newgantry1.pcx 92 7 01 23 23 -4 -12 // 047B y, front 6
2610 images/newgantry1.pcx 92 7 01 23 23 -8 -14 // 047C y, front 7
2611 images/newgantry1.pcx 100 7 01 23 15 -4 -16 // 047D y, front 8
2612 images/newgantry1.pcx 104 7 01 23 11 -4 -18 // 047E y, front 9
2613 images/newgantry1.pcx 108 7 01 23 7 -4 -20 // 047F y, front 10

2614 images/newgantry1.pcx 753 107 01 47 59 -29 -24 // 0480 y, top 35 - in
2615 images/newgantry1.pcx 691 107 01 47 59 -29 -24 // 0481 y, top 36
2616 images/newgantry1.pcx 629 107 01 47 59 -29 -24 // 0482 y, top 37
2617 images/newgantry1.pcx 567 107 01 47 59 -29 -24 // 0483 y, top 38
2618 images/newgantry1.pcx 505 107 01 47 59 -29 -24 // 0484 y, top 39
2619 images/newgantry1.pcx 443 107 01 47 59 -29 -24 // 0485 y, top 40
2620 images/newgantry1.pcx 381 107 01 47 59 -29 -24 // 0486 y, top 41
2621 images/newgantry1.pcx 319 107 01 47 59 -29 -24 // 0487 y, top 42
2622 images/newgantry1.pcx 257 107 01 47 59 -29 -24 // 0488 y, top 43
2623 images/newgantry1.pcx 195 107 01 47 59 -29 -24 // 0489 y, top 44
2624 images/newgantry1.pcx 133 107 01 47 59 -29 -24 // 048A y, top 45
2625 images/newgantry1.pcx 71 107 01 48 59 -29 -24 // 048B y, top 46
2626 images/newgantry1.pcx 9 107 01 49 59 -29 -24 // 048C y, top 47 - out

2627 * 7	 02 04
00 // ID
00 01
\w0

// Test variable 10 for real sprites
2628 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0000 // crane sprites

// Assign register values for sprite layout

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2629 * 84	 02 04 15 // ID
85
7E 02 // get random colours
20 \wx7FFF
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 64 // get sprite offset for sides
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - side sprite offset
\2rst
7E 60 // get sprite offset for top
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - top sprite offset
\2rst
7E 68 // get hide/show flag for sides
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane sides flag
\2rst
7E 62 // get hide/show flag for top
20 \wx7FFF
\2sto 1A
20 \wx0002 // store in register - show crane top flag
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 140 - Animation control

2630 * 18	 02 04 5B // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD

2631 * 35	 02 04 10 // ID
85 0C // callback
00 \wxFFFF
04
\wx8000 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx005C \wx0141 \wx0141 // animation frame
\wx005F \wx0142 \wx0142 // animation speed
\wx0015 // real sprites

// For purchase list
2632 * 23	 02 04 11 // ID
85 0C // callback
00 \wxFFFF
02
\wx000C \wx0013 \wx0013 // date availability
\wx8002 \wx0014 \wx0014 // sprite layout (crane at tile centre)
\wx001B // real sprites

2633 * 10	 03 04
01 2F
01
FF \wx0011 // purchase
\wx0010

2634 * 32	 00 04 0B 01 30
08 "ISRI"
0A 2E // copy sprite layout

0C FE // only allow 1 platform
0D F1 // disallow platform length 1 and > 4

11 00 // pylon placement (none)
14 FF // wires (none)

15 FF // prevent trains entering the tile

16 \wx01F3 // animation info 244 frames looping
17 05 // animation speed 2^5 ticks per frame (~800ms), changed by callback 142
18 \wx0006 // animation triggers - cargo arrives (2), cargo removed (4)

0B 0F // use callback to determine date availability (1), layout (2), animation frame (4) and animation speed (8)

// Test variable 10 for real sprites
2635 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0000 // crane sprites

// Assign register values for sprite layout

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2636 * 78	 02 04 15 // ID
85
7E 02 // get random colours
20 \wx7FFF
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 64 // get sprite offset for sides
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - side sprite offset
\2rst
7E 60 // get sprite offset for top
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - top sprite offset
\2rst
7E 68 // get hide/show flag for sides
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane sides flag
\2rst
7E 62 // get hide/show flag for top
20 \wx7FFF
\2sto 1A
20 \wx0002 // store in register - show crane top flag
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
2637 * 67	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
1A // all bits on
20 \w5 // val = 5
\2sto 1A
20 \wx0005 // store in register - side sprite offset
\2rst
1A // all bits on
20 \w6 // val = 6
\2sto 1A
20 \wx0006 // store in register - top sprite offset
\2rst
1A // all bits on
20 \w1 // val = 1
\2sto 1A
20 \wx0001 // store in register - show crane sides flag
\2sto 1A
20 \wx0002 // store in register - show crane top flag
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 140 - Animation control

2638 * 18	 02 04 5B // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 01 01 // cargo arrives - start
\wx80FF 02 02 // cargo completely taken - stop
\wx80FD // do nothing

2639 * 35	 02 04 10 // ID
85 0C // callback
00 \wxFFFF
04
\wx8000 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx005C \wx0141 \wx0141 // animation frame
\wx005F \wx0142 \wx0142 // animation speed
\wx0015 // real sprites

// For purchase list
2640 * 23	 02 04 11 // ID
85 0C // callback
00 \wxFFFF
02
\wx000C \wx0013 \wx0013 // date availability
\wx8000 \wx0014 \wx0014 // sprite layout (crane at tile centre)
\wx0016 // real sprites

2641 * 10	 03 04
01 30
01
FF \wx0011 // purchase
\wx0010
2642 * 262	 00 04 0A 01 31
08 "ISRI"

// Sprite layout
1A 04
// 00 (x)
44
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0007 // crane back
00 00 00 // x/y/z offset
10 05 11 // x/y/z extent
01 05 12 // registers
\dx8000843A \wx0007 // crane front
00 0B 00 // x/y/z offset
10 05 11 // x/y/z extent
01 05 12 // registers
\dx80008447 \wx0007 // crane top
00 00 11 // x/y/z offset
10 10 29 // x/y/z extent
01 05 12 // registers

// 01 (y)
44
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008454 \wx0007 // crane back
00 00 00 // x/y/z offset
05 10 11 // x/y/z extent
01 05 12 // registers
\dx80008461 \wx0007 // crane front
0B 00 00 // x/y/z offset
05 10 11 // x/y/z extent
01 05 12 // registers
\dx8000846E \wx0007 // crane top
00 00 11 // x/y/z offset
10 10 29 // x/y/z extent
01 05 12 // registers

// 02 (x) purchase
44
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000433 \wx0000 // crane back
00 00 00 // x/y/z offset
10 05 11 // x/y/z extent
\dx80000440 \wx0000 // crane front
00 0B 00 // x/y/z offset
10 05 11 // x/y/z extent
\dx8000044D \wx0000 // crane top
00 00 11 // x/y/z offset
10 10 29 // x/y/z extent

// 03 (y) purchase
44
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000045A \wx0000 // crane back
00 00 00 // x/y/z offset
05 10 11 // x/y/z extent
\dx80000467 \wx0000 // crane front
0B 00 00 // x/y/z offset
05 10 11 // x/y/z extent
\dx80000474 \wx0000 // crane top
00 00 11 // x/y/z offset
10 10 29 // x/y/z extent

0B 06 // use callback to determine layout (2) and animation frame (4)

0C FE // only allow 1 platform
0D C1 // disallow platform length 1 and > 6

14 FF // wires (none)
11 00 // pylon placement (none)

16 \wx0151 // animation info 82 frames looping
17 05 // animation speed 2^5 ticks per frame (~800ms)
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

2643 * 4	 01 04 01 4E
//@@LET xpos = 3
//@@LET ypos = 4
//@@LET xsize = 23
//@@LET ysize = 19
//@@LET xrel = -21
//@@LET yrel = -3
//@@LET xsizeh = 11
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2644 images/gantryold1.pcx  23 4 01 19 3 -25 9 // 042D x, back
2645 images/gantryold1.pcx  19 4 01 19 7 -25 7 // 042E x, back
2646 images/gantryold1.pcx  15 4 01 19 11 -25 5 // 042F x, back
2647 images/gantryold1.pcx  11 4 01 19 15 -25 3 // 0430 x, back
2648 images/gantryold1.pcx  7 4 01 19 19 -25 1 // 0431 x, back
2649 images/gantryold1.pcx  3 4 01 19 23 -25 -1 // 0432 x, back
2650 images/gantryold1.pcx  3 4 01 19 23 -21 -3 // 0433 x, back
2651 images/gantryold1.pcx  3 4 01 19 23 -17 -5 // 0434 x, back
2652 images/gantryold1.pcx  3 4 01 19 20 -13 -7 // 0435 x, back
2653 images/gantryold1.pcx  3 4 01 19 16 -9 -9 // 0436 x, back
2654 images/gantryold1.pcx  3 4 01 19 12 -5 -11 // 0437 x, back
2655 images/gantryold1.pcx  3 4 01 19 8 -1 -13 // 0438 x, back
2656 images/gantryold1.pcx  3 4 01 19 4 3 -15 // 0439 x, back

//@@LET xpos = 29
//@@LET ypos = 4
//@@LET xsize = 25
//@@LET ysize = 26
//@@LET xrel = -23
//@@LET yrel = -11
//@@LET xsizeh = 11
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2657 images/gantryold1.pcx  51 4 01 26 3 -25 1 // 043A x, front
2658 images/gantryold1.pcx  47 4 01 26 7 -25 -1 // 043B x, front
2659 images/gantryold1.pcx  43 4 01 26 11 -25 -3 // 043C x, front
2660 images/gantryold1.pcx  39 4 01 26 15 -25 -5 // 043D x, front
2661 images/gantryold1.pcx  35 4 01 26 19 -25 -7 // 043E x, front
2662 images/gantryold1.pcx  29 4 01 26 25 -27 -9 // 043F x, front
2663 images/gantryold1.pcx  29 4 01 26 25 -23 -11 // 0440 x, front
2664 images/gantryold1.pcx  29 4 01 26 25 -19 -13 // 0441 x, front
2665 images/gantryold1.pcx  29 4 01 26 22 -15 -15 // 0442 x, front
2666 images/gantryold1.pcx  29 4 01 26 18 -11 -17 // 0443 x, front
2667 images/gantryold1.pcx  29 4 01 26 14 -7 -19 // 0444 x, front
2668 images/gantryold1.pcx  29 4 01 26 10 -3 -21 // 0445 x, front
2669 images/gantryold1.pcx  29 4 01 26 6 1 -23 // 0446 x, front

//@@LET xpos = 86
//@@LET ypos = 4
//@@LET xsize = 45
//@@LET ysize = 52
//@@LET xrel = -25
//@@LET yrel = -28
//@@LET xsizeh = 20
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2670 images/gantryold1.pcx  119 4 01 52 12 -16 -16 // 0447 x, crane n
2671 images/gantryold1.pcx  115 4 01 52 16 -16 -18 // 0448 x, crane n
2672 images/gantryold1.pcx  111 4 01 52 20 -16 -20 // 0449 x, crane n
2673 images/gantryold1.pcx  107 4 01 52 24 -16 -22 // 044A x, crane n
2674 images/gantryold1.pcx  103 4 01 52 28 -16 -24 // 044B x, crane n
2675 images/gantryold1.pcx  86 4 01 52 45 -29 -26 // 044C x, crane n
2676 images/gantryold1.pcx  86 4 01 52 45 -25 -28 // 044D x, crane n
2677 images/gantryold1.pcx  86 4 01 52 45 -21 -30 // 044E x, crane n
2678 images/gantryold1.pcx  86 4 01 52 33 -17 -32 // 044F x, crane n
2679 images/gantryold1.pcx  86 4 01 52 29 -13 -34 // 0450 x, crane n
2680 images/gantryold1.pcx  86 4 01 52 25 -9 -36 // 0451 x, crane n
2681 images/gantryold1.pcx  86 4 01 52 21 -5 -38 // 0452 x, crane n
2682 images/gantryold1.pcx  86 4 01 52 17 -1 -40 // 0453 x, crane n

//@@LET xpos = 189
//@@LET ypos = 4
//@@LET xsize = 23
//@@LET ysize = 19
//@@LET xrel = 0
//@@LET yrel = -3
//@@LET xsizeh = 11
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2683 images/gantryold1.pcx  189 4 01 19 4 24 9 // 0454 y, back
2684 images/gantryold1.pcx  189 4 01 19 8 20 7 // 0455 y, back
2685 images/gantryold1.pcx  189 4 01 19 12 16 5 // 0456 y, back
2686 images/gantryold1.pcx  189 4 01 19 16 12 3 // 0457 y, back
2687 images/gantryold1.pcx  189 4 01 19 20 8 1 // 0458 y, back
2688 images/gantryold1.pcx  189 4 01 19 23 4 -1 // 0459 y, back
2689 images/gantryold1.pcx  189 4 01 19 23 0 -3 // 045A y, back
2690 images/gantryold1.pcx  189 4 01 19 23 -4 -5 // 045B y, back
2691 images/gantryold1.pcx  193 4 01 19 19 -4 -7 // 045C y, back
2692 images/gantryold1.pcx  197 4 01 19 15 -4 -9 // 045D y, back
2693 images/gantryold1.pcx  201 4 01 19 11 -4 -11 // 045E y, back
2694 images/gantryold1.pcx  205 4 01 19 7 -4 -13 // 045F y, back
2695 images/gantryold1.pcx  209 4 01 19 3 -4 -15 // 0460 y, back

//@@LET xpos = 215
//@@LET ypos = 4
//@@LET xsize = 25
//@@LET ysize = 26
//@@LET xrel = 0
//@@LET yrel = -11
//@@LET xsizeh = 11
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2696 images/gantryold1.pcx  215 4 01 26 6 24 1 // 0461 y, front
2697 images/gantryold1.pcx  215 4 01 26 10 20 -1 // 0462 y, front
2698 images/gantryold1.pcx  215 4 01 26 14 16 -3 // 0463 y, front
2699 images/gantryold1.pcx  215 4 01 26 18 12 -5 // 0464 y, front
2700 images/gantryold1.pcx  215 4 01 26 22 8 -7 // 0465 y, front
2701 images/gantryold1.pcx  215 4 01 26 25 4 -9 // 0466 y, front
2702 images/gantryold1.pcx  215 4 01 26 25 0 -11 // 0467 y, front
2703 images/gantryold1.pcx  215 4 01 26 25 -4 -13 // 0468 y, front
2704 images/gantryold1.pcx  221 4 01 26 19 -2 -15 // 0469 y, front
2705 images/gantryold1.pcx  225 4 01 26 15 -2 -17 // 046A y, front
2706 images/gantryold1.pcx  229 4 01 26 11 -2 -19 // 046B y, front
2707 images/gantryold1.pcx  233 4 01 26 7 -2 -21 // 046C y, front
2708 images/gantryold1.pcx  237 4 01 26 3 -2 -23 // 046D y, front

//@@LET xpos = 270
//@@LET ypos = 4
//@@LET xsize = 45
//@@LET ysize = 52
//@@LET xrel = -18
//@@LET yrel = -28
//@@LET xsizeh = 32
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2709 images/gantryold1.pcx  270 4 01 52 5 6 -16 // 046E y, crane n
2710 images/gantryold1.pcx  270 4 01 52 9 2 -18 // 046F y, crane n
2711 images/gantryold1.pcx  270 4 01 52 13 -2 -20 // 0470 y, crane n
2712 images/gantryold1.pcx  270 4 01 52 17 -6 -22 // 0471 y, crane n
2713 images/gantryold1.pcx  270 4 01 52 21 -10 -24 // 0472 y, crane n
2714 images/gantryold1.pcx  270 4 01 52 45 -14 -26 // 0473 y, crane n
2715 images/gantryold1.pcx  270 4 01 52 45 -18 -28 // 0474 y, crane n
2716 images/gantryold1.pcx  270 4 01 52 45 -22 -30 // 0475 y, crane n
2717 images/gantryold1.pcx  275 4 01 52 40 -21 -32 // 0476 y, crane n
2718 images/gantryold1.pcx  279 4 01 52 36 -21 -34 // 0477 y, crane n
2719 images/gantryold1.pcx  283 4 01 52 32 -21 -36 // 0478 y, crane n
2720 images/gantryold1.pcx  287 4 01 52 28 -21 -38 // 0479 y, crane n
2721 images/gantryold1.pcx  291 4 01 52 24 -21 -40 // 047A y, crane n

2722 * 7	 02 04
00 // ID
00 01
\w0

// frame     : current frame of animation (0 to 81)
// a_frame   : adjusted frame number for direction change (0 to 40, 40 to 0)
// t_frame   : frame number for tile (0 to 14)

// Frames
// frame:      0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...
// t_frame t0: 6  7  8  9 10 11 12 13 14
//         t1:       0  1  2  3  4  5  6  7  8  9 10 11 12 13 14
//         t2:                               0  1  2  3  4  5  6  7  8  9 10 11 12 13 14
//         t3:                                                       0  1  2  3  4  5  6  7 ...

// t1 sprite offset:    0  1  2  3  4  5  6  7  8  9 10 11 12
// t1 visible:       0  1  1  1  1  1  1  1  1  1  1  1  1  1  0

// Test variable 10 for real sprites
2723 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0000 // crane sprites

// Assign register values for sprite layout

// Get animation frame of south tile
2724 * 15	 02 04 0A // ID
81 41 // platform info and relative position
24 0F // position along platform from south
\2rst
7B 66 // animation frame of nearby tile using position from south as parameter
00 FF
00 // return frame
\wx8000

// Calculate a_frame for reverse movement
2725 * 15	 02 04 50 // ID
81 1A // all bits on
20 \b81 // max_frame = 81
\2-
7D 25 // read register for frame of south tile
00 FF
00 // return a_frame = max_frame - frame
\wx8000

// Set a_frame to frame for forward movement
2726 * 11	 02 04 51 // ID
81
7D 25 // read register for frame of south tile
00 FF
00 // return a_frame = frame
\wx8000

// Select movement direction
2727 * 19	 02 04 52 // ID
81 7E 0A // animation frame - south tile
20 FF
\2sto 1A
00 25 // store in register to prevent multiple calls to frame of nearby tile
01
\wx0051 \b0 \b40 // frames 0 to 40
\wx0050 // frames 41 to max

// Calculate t_frame {t_frame = (a_frame + 6) - (p_pos * 8)}
2728 * 27	 02 04 53 // ID
81 7E 52 // get a_frame
20 FF
\2+
1A // all bits on
20 \b6 // val + 6
\2-
41 // platform info, get position along platform from south
21 78 // shift 1 and mask 4 bits to give p_pos * 8
\2> // result = max(val1, val2)
1A // all bits on
20 \b0 // result is capped at min 0
\2< // result = min(val1, val2)
1A // all bits on
00 \b14 // result is capped at max 14
00 // return t_frame
\wx8000

// Movement sprite offset
2729 * 23	 02 04 61 // ID
81 7E 53 // get tile frame (0 to 14)
20 FF
\2-
1A // all bits on
20 \b1 // val - 1
\2> // result = max(val1, val2)
1A // all bits on
20 \b0 // result is capped at min 0
\2< // result = min(val1, val2)
1A // all bits on
00 \b12 // result is capped at max 12
00 // return sprite offset
\wx8000

// Check for animated tile
2730 * 14	 02 04 5A // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0061 00 05 // if valid animation tile
\wx8000 // hide

// Hide sprites
2731 * 15	 02 04 63 // ID
81 7E 53 // get tile frame (0 to 14)
00 FF
01
\wx8001 \b1 \b13 // t_frame 1 to 13 - show
\wx8000 // hide

// Check for animated tile
2732 * 14	 02 04 62 // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0063 00 05 // if valid animation tile
\wx8000 // hide

// Selection of recolour sprite
2733 * 17	 02 04 6A // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
00 \w3 // add offset of 1st recolour sprite
00
\wx8000

2734 * 17	 02 04 6B // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
00 \w4 // add offset of 2nd recolour sprite
00
\wx8000

2735 * 17	 02 04 6C // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
00 \w5 // add offset of 3rd recolour sprite
00
\wx8000

// Random colours
2736 * 15	 02 04 02 // ID
80
00 // don't re-randomise
00 // use bits 0 and 1
04
\wx8000
\wx006A
\wx006B
\wx006C

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2737 * 62	 02 04 15 // ID
85
7E 02 // get random colours
20 \wx7FFF
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 5A // get sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - sprite offset
\2rst
7E 62 // get hide/show flag
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 140 - Animation control

2738 * 18	 02 04 5B // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD

// Callback 141 - Next animation frame

// Calculate new frame for reverse movement
2739 * 14	 02 04 56 // ID
81 1A // all bits on
20 \b81 // max_frame = 81
\2-
4A // animation frame
00 FF
00 // return new_frame = max_frame - frame
\wx8000

// Animation frame control - determine point to reverse direction
// {max_frame = (plat_length - 1) * 8}
2740 * 30	 02 04 55 // ID
81 41 // platform info and relative position
30 0F // platform length
\2< // result = min(val1, val2)
1A // all bits on
20 \b6 // result is capped at max 6
\2-
1A // all bits on
20 \b1 // val - 1

1A // all bits on
20 \b3 // val * 8 - gives max frame for this platform length
\2-
4A // animation frame
00 FF // subtract animation frame from max frame
01
\wx0056 00 00 // if animation frame = max frame, set new frame
\wx80FE // continue

2741 * 14	 02 04 5C // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx0055 00 00 // if most southerly tile
\wx80FE // continue

2742 * 29	 02 04 10 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx005C \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
2743 * 17	 02 04 11 // ID
85 0C // callback
00 \wxFFFF
01
\wx8002 \wx0014 \wx0014 // sprite layout
\wx001B // real sprites

2744 * 10	 03 04
01 31
01
FF \wx0011 // purchase
\wx0010

2745 * 158	 00 04 0B 01 32
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
44
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042F \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0007 // crane back
00 00 00 // x/y/z offset
10 05 11 // x/y/z extent
01 05 12 // registers
\dx8000843A \wx0007 // crane front
00 0B 00 // x/y/z offset
10 05 11 // x/y/z extent
01 05 12 // registers
\dx80008447 \wx0007 // crane top
00 00 11 // x/y/z offset
10 10 29 // x/y/z extent
01 05 12 // registers

// 01 (y)
44
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx80000430 \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008454 \wx0007 // crane back
00 00 00 // x/y/z offset
05 10 11 // x/y/z extent
01 05 12 // registers
\dx80008461 \wx0007 // crane front
0B 00 00 // x/y/z offset
05 10 11 // x/y/z extent
01 05 12 // registers
\dx8000846E \wx0007 // crane top
00 00 11 // x/y/z offset
10 10 29 // x/y/z extent
01 05 12 // registers

0B 06 // use callback to determine layout (2) and animation frame (4)

0C FE // only allow 1 platform
0D C1 // disallow platform length 1 and > 6

11 00 // pylon placement (none)
14 FF // wires (none)

15 FF // prevent trains entering the tile

16 \wx0151 // animation info 82 frames looping
17 05 // animation speed 2^5 ticks per frame (~800ms)
18 \wx0006 // animation triggers - cargo arrives (2), cargo removed (4)

// Test variable 10 for real sprites
2746 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0000 // crane sprites

// Assign register values for sprite layout

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2747 * 56	 02 04 15 // ID
85
7E 02 // get random colours
20 \wx7FFF
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 5A // get sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - sprite offset
\2rst
7E 62 // get hide/show flag
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register- ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
2748 * 52	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
1A // all bits on
20 \w6 // val = 6
\2sto 1A
20 \wx0005 // store in register - sprite offset
\2rst
1A // all bits on
20 \w1 // val = 1
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 140 - Animation control

2749 * 18	 02 04 5B // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 01 01 // cargo arrives - start
\wx80FF 02 02 // cargo completely taken - stop
\wx80FD // do nothing

2750 * 29	 02 04 10 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx005C \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
2751 * 17	 02 04 11 // ID
85 0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0016 // real sprites

2752 * 10	 03 04
01 32
01
FF \wx0011 // purchase
\wx0010

2753 * 30	 00 04 0A 01 33
08 "ISRI"
0A 31 // copy sprite layout

0B 06 // use callback to determine layout (2) and animation frame (4)

0C FE // only allow 1 platform
0D C1 // disallow platform length 1 and > 6

14 FF // wires (none)
11 00 // pylon placement (none)

16 \wx0151 // animation info 82 frames looping
17 05 // animation speed 2^5 ticks per frame (~800ms)
18 \wx0018 // animation triggers - train enters (0x08), train leaves (0x10)

2754 * 4	 01 04 01 4E
//@@LET xpos = 3
//@@LET ypos = 4
//@@LET xsize = 23
//@@LET ysize = 19
//@@LET xrel = -21
//@@LET yrel = -3
//@@LET xsizeh = 11
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2755 images/gantryold1.pcx  23 4 01 19 3 -25 9 // 042D x, back
2756 images/gantryold1.pcx  19 4 01 19 7 -25 7 // 042E x, back
2757 images/gantryold1.pcx  15 4 01 19 11 -25 5 // 042F x, back
2758 images/gantryold1.pcx  11 4 01 19 15 -25 3 // 0430 x, back
2759 images/gantryold1.pcx  7 4 01 19 19 -25 1 // 0431 x, back
2760 images/gantryold1.pcx  3 4 01 19 23 -25 -1 // 0432 x, back
2761 images/gantryold1.pcx  3 4 01 19 23 -21 -3 // 0433 x, back
2762 images/gantryold1.pcx  3 4 01 19 23 -17 -5 // 0434 x, back
2763 images/gantryold1.pcx  3 4 01 19 20 -13 -7 // 0435 x, back
2764 images/gantryold1.pcx  3 4 01 19 16 -9 -9 // 0436 x, back
2765 images/gantryold1.pcx  3 4 01 19 12 -5 -11 // 0437 x, back
2766 images/gantryold1.pcx  3 4 01 19 8 -1 -13 // 0438 x, back
2767 images/gantryold1.pcx  3 4 01 19 4 3 -15 // 0439 x, back

//@@LET xpos = 57
//@@LET ypos = 4
//@@LET xsize = 25
//@@LET ysize = 26
//@@LET xrel = -23
//@@LET yrel = -11
//@@LET xsizeh = 11
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2768 images/gantryold1.pcx  79 4 01 26 3 -25 1 // 043A x, front
2769 images/gantryold1.pcx  75 4 01 26 7 -25 -1 // 043B x, front
2770 images/gantryold1.pcx  71 4 01 26 11 -25 -3 // 043C x, front
2771 images/gantryold1.pcx  67 4 01 26 15 -25 -5 // 043D x, front
2772 images/gantryold1.pcx  63 4 01 26 19 -25 -7 // 043E x, front
2773 images/gantryold1.pcx  57 4 01 26 25 -27 -9 // 043F x, front
2774 images/gantryold1.pcx  57 4 01 26 25 -23 -11 // 0440 x, front
2775 images/gantryold1.pcx  57 4 01 26 25 -19 -13 // 0441 x, front
2776 images/gantryold1.pcx  57 4 01 26 22 -15 -15 // 0442 x, front
2777 images/gantryold1.pcx  57 4 01 26 18 -11 -17 // 0443 x, front
2778 images/gantryold1.pcx  57 4 01 26 14 -7 -19 // 0444 x, front
2779 images/gantryold1.pcx  57 4 01 26 10 -3 -21 // 0445 x, front
2780 images/gantryold1.pcx  57 4 01 26 6 1 -23 // 0446 x, front

//@@LET xpos = 134
//@@LET ypos = 4
//@@LET xsize = 52
//@@LET ysize = 46
//@@LET xrel = -17
//@@LET yrel = -22
//@@LET xsizeh = 23
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2781 images/gantryold1.pcx  171 4 01 46 15 -4 -10 // 0447 x, crane n
2782 images/gantryold1.pcx  167 4 01 46 19 -4 -12 // 0448 x, crane n
2783 images/gantryold1.pcx  163 4 01 46 23 -4 -14 // 0449 x, crane n
2784 images/gantryold1.pcx  159 4 01 46 27 -4 -16 // 044A x, crane n
2785 images/gantryold1.pcx  155 4 01 46 31 -4 -18 // 044B x, crane n
2786 images/gantryold1.pcx  134 4 01 46 52 -21 -20 // 044C x, crane n
2787 images/gantryold1.pcx  134 4 01 46 52 -17 -22 // 044D x, crane n
2788 images/gantryold1.pcx  134 4 01 46 52 -13 -24 // 044E x, crane n
2789 images/gantryold1.pcx  134 4 01 46 37 -9 -26 // 044F x, crane n
2790 images/gantryold1.pcx  134 4 01 46 33 -5 -28 // 0450 x, crane n
2791 images/gantryold1.pcx  134 4 01 46 29 -1 -30 // 0451 x, crane n
2792 images/gantryold1.pcx  134 4 01 46 25 3 -32 // 0452 x, crane n
2793 images/gantryold1.pcx  134 4 01 46 21 7 -34 // 0453 x, crane n

//@@LET xpos = 189
//@@LET ypos = 4
//@@LET xsize = 23
//@@LET ysize = 19
//@@LET xrel = 0
//@@LET yrel = -3
//@@LET xsizeh = 11
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2794 images/gantryold1.pcx  189 4 01 19 4 24 9 // 0454 y, back
2795 images/gantryold1.pcx  189 4 01 19 8 20 7 // 0455 y, back
2796 images/gantryold1.pcx  189 4 01 19 12 16 5 // 0456 y, back
2797 images/gantryold1.pcx  189 4 01 19 16 12 3 // 0457 y, back
2798 images/gantryold1.pcx  189 4 01 19 20 8 1 // 0458 y, back
2799 images/gantryold1.pcx  189 4 01 19 23 4 -1 // 0459 y, back
2800 images/gantryold1.pcx  189 4 01 19 23 0 -3 // 045A y, back
2801 images/gantryold1.pcx  189 4 01 19 23 -4 -5 // 045B y, back
2802 images/gantryold1.pcx  193 4 01 19 19 -4 -7 // 045C y, back
2803 images/gantryold1.pcx  197 4 01 19 15 -4 -9 // 045D y, back
2804 images/gantryold1.pcx  201 4 01 19 11 -4 -11 // 045E y, back
2805 images/gantryold1.pcx  205 4 01 19 7 -4 -13 // 045F y, back
2806 images/gantryold1.pcx  209 4 01 19 3 -4 -15 // 0460 y, back

//@@LET xpos = 243
//@@LET ypos = 4
//@@LET xsize = 25
//@@LET ysize = 26
//@@LET xrel = 0
//@@LET yrel = -11
//@@LET xsizeh = 11
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2807 images/gantryold1.pcx  243 4 01 26 6 24 1 // 0461 y, front
2808 images/gantryold1.pcx  243 4 01 26 10 20 -1 // 0462 y, front
2809 images/gantryold1.pcx  243 4 01 26 14 16 -3 // 0463 y, front
2810 images/gantryold1.pcx  243 4 01 26 18 12 -5 // 0464 y, front
2811 images/gantryold1.pcx  243 4 01 26 22 8 -7 // 0465 y, front
2812 images/gantryold1.pcx  243 4 01 26 25 4 -9 // 0466 y, front
2813 images/gantryold1.pcx  243 4 01 26 25 0 -11 // 0467 y, front
2814 images/gantryold1.pcx  243 4 01 26 25 -4 -13 // 0468 y, front
2815 images/gantryold1.pcx  249 4 01 26 19 -2 -15 // 0469 y, front
2816 images/gantryold1.pcx  253 4 01 26 15 -2 -17 // 046A y, front
2817 images/gantryold1.pcx  257 4 01 26 11 -2 -19 // 046B y, front
2818 images/gantryold1.pcx  261 4 01 26 7 -2 -21 // 046C y, front
2819 images/gantryold1.pcx  265 4 01 26 3 -2 -23 // 046D y, front

//@@LET xpos = 318
//@@LET ypos = 4
//@@LET xsize = 52
//@@LET ysize = 46
//@@LET xrel = -33
//@@LET yrel = -22
//@@LET xsizeh = 29
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 16 -)

2820 images/gantryold1.pcx  318 4 01 46 15 -9 -10 // 046E y, crane n
2821 images/gantryold1.pcx  318 4 01 46 19 -13 -12 // 046F y, crane n
2822 images/gantryold1.pcx  318 4 01 46 23 -17 -14 // 0470 y, crane n
2823 images/gantryold1.pcx  318 4 01 46 27 -21 -16 // 0471 y, crane n
2824 images/gantryold1.pcx  318 4 01 46 31 -25 -18 // 0472 y, crane n
2825 images/gantryold1.pcx  318 4 01 46 52 -29 -20 // 0473 y, crane n
2826 images/gantryold1.pcx  318 4 01 46 52 -33 -22 // 0474 y, crane n
2827 images/gantryold1.pcx  318 4 01 46 52 -37 -24 // 0475 y, crane n
2828 images/gantryold1.pcx  333 4 01 46 37 -26 -26 // 0476 y, crane n
2829 images/gantryold1.pcx  337 4 01 46 33 -26 -28 // 0477 y, crane n
2830 images/gantryold1.pcx  341 4 01 46 29 -26 -30 // 0478 y, crane n
2831 images/gantryold1.pcx  345 4 01 46 25 -26 -32 // 0479 y, crane n
2832 images/gantryold1.pcx  349 4 01 46 21 -26 -34 // 047A y, crane n

2833 * 7	 02 04
00 // ID
00 01
\w0

// Test variable 10 for real sprites
2834 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0000 // crane sprites

// Assign register values for sprite layout

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2835 * 62	 02 04 15 // ID
85
7E 02 // get random colours
20 \wx7FFF
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 5A // get sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - sprite offset
\2rst
7E 62 // get hide/show flag
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 140 - Animation control

2836 * 18	 02 04 5B // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 03 03 // vehicle enters station - start
\wx80FF 04 04 // vehicle leaves station - stop
\wx80FD

2837 * 29	 02 04 10 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx005C \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
2838 * 17	 02 04 11 // ID
85 0C // callback
00 \wxFFFF
01
\wx8002 \wx0014 \wx0014 // sprite layout
\wx001B // real sprites

2839 * 10	 03 04
01 33
01
FF \wx0011 // purchase
\wx0010

2840 * 32	 00 04 0B 01 34
08 "ISRI"
0A 32 // copy sprite layout

0B 06 // use callback to determine layout (2) and animation frame (4)

0C FE // only allow 1 platform
0D C1 // disallow platform length 1 and > 6

11 00 // pylon placement (none)
14 FF // wires (none)

15 FF // prevent trains entering the tile

16 \wx0151 // animation info 82 frames looping
17 05 // animation speed 2^5 ticks per frame (~800ms)
18 \wx0006 // animation triggers - cargo arrives (2), cargo removed (4)

// Test variable 10 for real sprites
2841 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // if variable 10 = 4 - get ground overlay sprites
\wx0000 // else

// Assign register values for sprite layout

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2842 * 56	 02 04 15 // ID
85
7E 02 // get random colours
20 \wx7FFF
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 5A // get sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - sprite offset
\2rst
7E 62 // get hide/show flag
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
2843 * 52	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
1A // all bits on
20 \w6 // val = 6
\2sto 1A
20 \wx0005 // store in register - sprite offset
\2rst
1A // all bits on
20 \w1 // val = 1
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 140 - Animation control

2844 * 18	 02 04 5B // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 01 01 // cargo arrives - start
\wx80FF 02 02 // cargo completely taken - stop
\wx80FD // do nothing

2845 * 29	 02 04 10 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx005C \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
2846 * 17	 02 04 11 // ID
85 0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0016 // real sprites

2847 * 10	 03 04
01 34
01
FF \wx0011 // purchase
\wx0010
2848 * 86	 00 04 08 01 35
08 "ISRI"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0002 // crane
00 06 00 // x/y/z offset
0D 04 2B // x/y/z extent
05 // register

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842E \wx0002 // crane
06 00 00 // x/y/z offset
04 0D 2B // x/y/z extent
05 // register

0B 02 // use callback to determine layout

// Only allow a 1 x 1 layout
0C FE
0D FE

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
2849 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx00CF // crane sprites

// For purchase list
2850 * 17	 02 04 07 // ID
85 00 // current date
00 \wxFFFF
01
\wx8008 \w0 \w01/01/1950 // before 1950 - steam crane
\wx8000 // modern crane

// Get random sprite offset - modern crane
2851 * 15	 02 04 05 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx8000
\wx8002
\wx8004
\wx8006

// Get random sprite offset - steam crane
2852 * 11	 02 04 06 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8008
\wx800A

2853 * 17	 02 04 08 // ID
85 FA // date station was built
00 \wxFFFF
01
\wx0006 \w0 \w01/01/1950 // before 1950 - steam crane
\wx0005 // modern crane

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2854 * 34	 02 04 15 // ID
85
7E 08 // get crane variety
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
2855 * 33	 02 04 16 // ID
85
7E 07 // get crane variety
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - variety offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2856 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
2857 * 14	 02 04 02 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

2858 * 10	 03 04
01 35
01
FF \wx0002 // purchase
\wx0001
// Skip the dock replacement if parameter 0 is set to 1
2859 * 6	 07 00 01 \7= 01 07

// Replace the dock images
2860 * 5	 0A 01 06 A7 0A
2861 images/dock.pcx 15 8 09 34 64 -40 -16
2862 images/dock.pcx 87 10 09 40 63 -22 -15
2863 images/dock.pcx 156 10 09 40 63 -38 -15
2864 images/dock.pcx 226 8 09 34 64 -22 -16
2865 images/dock.pcx 15 61 09 31 49 -22 -4
2866 images/dock.pcx 71 61 09 31 49 -25 -4

// Skip the depot replacement if parameter 1 is set to 1
2867 * 6	 07 01 01 \7= 01 07

// Depot images - broken, due to the back images being way outside the
// original bounding boxes.
2868 * 5	 0A 01 06 E6 0F
2869 images/dock.pcx 140 100 09 43 50 -36 -28
2870 images/dock.pcx 139 161 09 43 50 -12 -28
2871 images/dock.pcx 83 99 09 44 51 -51 -34
2872 images/dock.pcx 83 160 09 44 51 1 -34
2873 images/dock.pcx 15 99 09 54 63 -29 -37
2874 images/dock.pcx 15 160 09 54 63 -33 -36

// Raw materials
2875 * 4	 01 04 01 02
// Purchase list
2876 images/purchaseicons.pcx 19 456 09 60 64 -31 -29 // 042D x
2877 images/purchaseicons.pcx 91 456 09 60 64 -31 -29 // 042E y

2878 * 7	 02 04
00 // ID
00 01
\w0

2879 * 170	 00 04 06 01 36
08 "ISRR"

// Sprite layout
1A 04
// 00 (x)
44
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043D \wx0003 // building
00 00 00 // x/y/z offset
10 04 28 // x/y/z extent
05 06 // registers
\dx8000045B \wx0003 // snow
00 00 80 // x/y/z offset
03 08 // registers
\dx80000445 \wx0001 // gantry
0D 05 00 // x/y/z offset
04 0B 16 // x/y/z extent
07 // register

// 01 (y)
44
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043E \wx0003 // building
00 00 00 // x/y/z offset
04 10 28 // x/y/z extent
05 06 // registers
\dx8000045C \wx0003 // snow
00 00 80 // x/y/z offset
03 08 // registers
\dx80000446 \wx0001 // gantry
05 0D 00 // x/y/z offset
0B 04 16 // x/y/z extent
07 // register

// 02 (x) - purchase
41
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

// 03 (y) - purchase
41
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0000 // purchase list sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent

0B 02 // use callback to determine layout

// Only allow a 2 x 1 layout
0C FE
0D FD

11 FF // pylon placement (all)

// Test variable 10 for real sprites
2880 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E7 // farm sprites

// Grey building
// Test tile to south along platform
2881 * 18	 02 04 0A // ID
85 68 01 // station info param 0/+1; check tile to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8001 36 15 36 15 // part #02/03 - S part
\wx8000 // else - it's broken, show empty platform

// Test tile to north along platform
2882 * 18	 02 04 0B // ID
85 68 0F // station info param 0/-1; check tile to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8001 36 05 36 05 // part #00/01 - N part
\wx8000 // else - it's broken, show empty platform

// Red building
// Test tile to south along platform
2883 * 18	 02 04 0C // ID
85 68 01 // station info param 0/+1; check tile to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8001 36 35 36 35 // part #06/07 - S part
\wx8000 // else - it's broken, show empty platform

// Test tile to north along platform
2884 * 18	 02 04 0D // ID
85 68 0F // station info param 0/-1; check tile to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8001 36 25 36 25 // part #04/05 - N part
\wx8000 // else - it's broken, show empty platform

// Test tile at current position to determine gantry visibility
2885 * 18	 02 04 07 // ID
85 68 00 // station info param 0/0; check this tile
00 \wx3000
01
\wx000A \wx0000 \wx0000 // part #00/01 - grey N
\wx8000 // part #06/07 - red S

// Test tile at current position to determine visibility
2886 * 30	 02 04 06 // ID
85 68 00 // station info param 0/0; check this tile
00 \wx3000
03
\wx000A \wx0000 \wx0000 // part #00/01 - grey N
\wx000B \wx1000 \wx1000 // part #02/03 - grey S
\wx000C \wx2000 \wx2000 // part #04/05 - red N
\wx000D // part #06/07 - red S

// Test tile at current position to determine tile type
2887 * 30	 02 04 03 // ID
85 68 00 // station info param 0/0; check this tile
00 \wx3000
03
\wx8000 \wx0000 \wx0000 // part #00/01 - grey N
\wx8002 \wx1000 \wx1000 // part #02/03 - grey S
\wx8004 \wx2000 \wx2000 // part #04/05 - red N
\wx8006 // part #06/07 - red S

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

2888 * 83	 02 04 15 // ID
85
7E 03 // get building sprite offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2& 1A
20 \wx0002 // snow offset only uses bit 1 (N or S)
\2sto 1A
20 \wx0008 // store in register - snow offset
\2rst
7E 06 // get building visibility
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E 07 // get gantry visibility
20 \wx00FF
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 24

2889 * 14	 02 04 10 // ID
81 10 // platform info and relative position
00 01 // position along platform from north mod 2
01
\wx8000 00 00 // grey N
\wx8002 // grey S

2890 * 14	 02 04 11 // ID
81 10 // platform info and relative position
00 01 // position along platform from north mod 2
01
\wx8004 00 00 // red N
\wx8006 // red S

// Use animation counter to get a 'random' bit
2891 * 14	 02 04 12 // ID
81 0A // animation counter
00 01 // mod 2
01
\wx0010 00 00 // grey building
\wx0011 // red building

2892 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Layout for the purchase menu
2893 * 18	 02 04 05 // ID
81 0C // callback
00 FF
02
\wx8002 14 14 // sprite layout
\wx0012 24 24 // station layout
\wx0000 // real sprites

2894 * 10	 03 04
01 36
01
FF \wx0005 // purchase
\wx0004

2895 * 360	 00 04 06 01 37
08 "ISRR"

// Sprite layout
1A 0A
// 00 (x) - empty tile
41
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10

// 01 (y) - empty tile
41
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10

// 02 (x) - old barn front
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0001 // building
00 00 00 // x/y/z offset
10 05 18 // x/y/z extent
06 // register
\dx80000459 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 03 (y) - old barn front
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0001 // building
00 00 00 // x/y/z offset
05 10 18 // x/y/z extent
06 // register
\dx8000045A \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 04 (x) - new barn back
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000447 \wx0001 // building
00 0B 00 // x/y/z offset
10 05 0B // x/y/z extent
06 // register
\dx80000455 \wx0001 // snow
00 01 80 // x/y/z offset
03 // register

// 05 (y) - new barn back
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000449 \wx0001 // building
0B 00 00 // x/y/z offset
05 10 0B // x/y/z extent
06 // register
\dx80000457 \wx0001 // snow
01 01 80 // x/y/z offset
03 // register

// 06 (x) - new barn front
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000448 \wx0001 // building
00 00 00 // x/y/z offset
10 05 0B // x/y/z extent
06 // register
\dx80000456 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 07 (y) - new barn front
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000044A \wx0001 // building
00 00 00 // x/y/z offset
05 10 0B // x/y/z extent
06 // register
\dx80000458 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 08 (x) - purchase (old barn front)
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // building
00 00 00 // x/y/z offset
10 05 18 // x/y/z extent

// 09 (y) - purchase (old barn front)
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // building
00 00 00 // x/y/z offset
05 10 18 // x/y/z extent

0B 02 // use callback to determine layout

// Only allow a 1 x 2 layout
0C FD
0D FE

11 FF // pylon placement (all)

// Test variable 10 for real sprites
2896 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E7 // farm sprites

// New barn building
// Test tile to south across platforms
2897 * 18	 02 04 0C // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8001 37 35 37 35 // part #06/07 - S part
\wx8000 // else - it's broken, show empty platform

// Test tile to north across platforms
2898 * 18	 02 04 0D // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx3FFF // mask 14 bits for tile ID, type, direction and part
01
\wx8001 37 25 37 25 // part #04/05 - N part
\wx8000 // else - it's broken, show empty platform

// Test tile at current position to determine visibility
2899 * 30	 02 04 06 // ID
85 68 00 // station info param 0/0; check this tile
00 \wx3000
03
\wx8001 \wx0000 \wx0000 // part #00/01 - old N
\wx8001 \wx1000 \wx1000 // part #02/03 - old S
\wx000C \wx2000 \wx2000 // part #04/05 - new N
\wx000D // part #06/07 - new S

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

2900 * 51	 02 04 15 // ID
85
7E 06 // get building visibility
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 14

2901 * 30	 02 04 05 // ID
85 68 00 // station info param 0/0 - check this tile
00 \wx3000
03
\wx8000 \wx0000 \wx0000 // part #00/01 - old N
\wx8002 \wx1000 \wx1000 // part #02/03 - old S
\wx8004 \wx2000 \wx2000 // part #04/05 - new N
\wx8006 // part #06/07 - new S

// Callback 24

2902 * 14	 02 04 10 // ID
81 10 // platform info and relative position
08 01 // platform number from north mod 2
01
\wx8000 00 00 // old N
\wx8002 // old S

2903 * 14	 02 04 11 // ID
81 10 // platform info and relative position
08 01 // platform number from north mod 2
01
\wx8004 00 00 // new N
\wx8006 // new S

// Use animation counter to get a 'random' bit
2904 * 14	 02 04 12 // ID
81 0A // animation counter
00 01 // mod 2
01
\wx0010 00 00 // old barn building
\wx0011 // new barn building

2905 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx0005 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
2906 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx8008 14 14 // sprite layout
\wx0012 24 24 // station layout
\wx001B // real sprites

2907 * 10	 03 04
01 37
01
FF \wx0003 // purchase
\wx0002

2908 * 358	 00 04 04 01 38
08 "ISRR"

// Sprite layout
1A 0A
// 00 (x) - silos
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0000 // silo
00 00 00 // x/y/z offset
10 05 24 // x/y/z extent
\dx80000451 \wx0001 // snow
02 00 80 // x/y/z offset
03 // register

// 01 (y) - silos
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008430 \wx0000 // silo
00 00 00 // x/y/z offset
05 10 24 // x/y/z extent
\dx80000452 \wx0001 // snow
02 00 80 // x/y/z offset
03 // register

// 02 (x) - hay
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008431 \wx0000 // hay
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent

// 03 (y) - hay
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008432 \wx0000 // hay
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent

// 04 (x) - tractor shed
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008439 \wx0002 // shed
00 00 00 // x/y/z offset
10 05 0D // x/y/z extent
06 // register
\dx80000453 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 05 (y) - tractor shed
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843A \wx0002 // shed
00 00 00 // x/y/z offset
05 10 0D // x/y/z extent
06 // register
\dx80000454 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 06 (x) - tractor
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008433 \wx0002 // tractor
08 00 00 // x/y/z offset
07 04 09 // x/y/z extent
07 // register

// 07 (y) - tractor
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008434 \wx0002 // tractor
00 08 00 // x/y/z offset
04 07 09 // x/y/z extent
07 // register

// 08 (x) - purchase (silos)
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0000 // silo
00 00 00 // x/y/z offset
10 05 24 // x/y/z extent

// 09 (y) - purchase (silos)
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008430 \wx0000 // silo
00 00 00 // x/y/z offset
05 10 24 // x/y/z extent

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

// Test variable 10 for real sprites
2909 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E7 // farm sprites

2910 * 11	 02 04 08 // ID
80
00 // don't re-randomise
13 // use bit 19
02
\wx8000
\wx8002

2911 * 15	 02 04 07 // ID
80
00 // don't re-randomise
12 // use bit 18 and 19
04
\wx8000
\wx8002
\wx8004
\wx8000

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

2912 * 62	 02 04 15 // ID
85
7E 08 // get random offset for tractor sheds
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 07 // get random offset for tractors
20 \wx00FF
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 14

2913 * 15	 02 04 05 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx8000
\wx8002
\wx8004
\wx8006

2914 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx0005 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
2915 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8008 14 14 // sprite layout
\wx001B // real sprites

2916 * 10	 03 04
01 38
01
FF \wx0003 // purchase
\wx0002

2917 * 138	 00 04 05 01 39
08 "ISRR"

// Sprite layout
1A 04
// 00 (x)
42
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000844B \wx0002 // grain tank
00 00 00 // x/y/z offset
10 05 36 // x/y/z extent
06 // register

// 01 (y)
42
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000844C \wx0002 // grain tank
00 00 00 // x/y/z offset
05 10 36 // x/y/z extent
06 // register

// 02 (x) - purchase
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000844D \wx0000 // grain tank
00 00 00 // x/y/z offset
10 05 36 // x/y/z extent

// 03 (y) - purchase
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000844E \wx0000 // grain tank
00 00 00 // x/y/z offset
05 10 36 // x/y/z extent

0B 02 // use callback to determine layout

0D 01 // disallow platform length 1

11 FF // pylon placement (all)

// Test variable 10 for real sprites
2918 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E7 // farm sprites

2919 * 18	 02 04 01 // ID
81 41
00 0F // position along platform from north
02
\wx8000 00 00 // north tile
\wx8002 01 01 // 2nd tile
\wx8004 // remaining tiles

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

2920 * 40	 02 04 15 // ID
85
7E 01 // get tank sprite offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2921 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2922 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

2923 * 10	 03 04
01 39
01
FF \wx0003 // purchase
\wx0002
2924 * 90	 00 04 06 01 3A
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0002 // back platform
00 00 00 // x/y/z offset
10 05 07 // x/y/z extent
06 // register
\dx8000042E \wx0002 // front platform
00 0B 00 // x/y/z offset
10 05 07 // x/y/z extent
06 // register

// 01 (y)
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042F \wx0002 // back platform
00 00 00 // x/y/z offset
05 10 07 // x/y/z extent
06 // register
\dx80000430 \wx0002 // front platform
0B 00 00 // x/y/z offset
05 10 07 // x/y/z extent
06 // register

0B 02 // use callback to determine layout

10 \w400 // set little/lots threshold

11 FF // pylon placement (all)

12 \dx00000010 // cargo types for randomisation triggers

// Test tile along platform to south for pig yard
2925 * 18	 02 04 01 // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx800C 3A 05 3A 05 // pig yard - middle
\wx8008 // south end

// Test tile along platform to south for pig yard
2926 * 18	 02 04 02 // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8004 3A 05 3A 05 // pig yard - north end
\wx8000 // single tile

// Test tile along platform to north for pig yard
2927 * 18	 02 04 03 // ID
85 68 0F // station info param 0/-1; check tile along platform to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0001 3A 05 3A 05 // pig yard
\wx0002 // else

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

2928 * 23	 02 04 15 // ID
85
7E 03 // get sprite offset
20 \wx00FF
\2sto 1A
00 \wx0006 // store in register
01
\wx00D8 \w0 \w0
\wx00D8

// Purchase
2929 * 22	 02 04 16 // ID
85
1A // all bits on
20 \w0
\2sto 1A
00 \wx0006 // store in register
01
\wx00D8 \w0 \w0
\wx00D8

// Empty
2930 * 23	 02 04 17 // ID
85
7E 03 // get sprite offset
20 \wx00FF
\2sto 1A
00 \wx0006 // store in register
01
\wx00D7 \w0 \w0
\wx00D7

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2931 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2932 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
2933 * 15	 02 04 07 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx0017
\wx0017
\wx0017
\wx0017

//@@WARNING ENABLE 113

// No suitable cargo
2934 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

2935 * 13	 03 04
01 3A
02
04 \wx0004 // livestock
FF \wx0005 // purchase
\wx0006 // no suitable cargo

2936 * 90	 00 04 06 01 3B
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
42
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0002 // back platform
00 00 00 // x/y/z offset
10 05 07 // x/y/z extent
06 // register
\dx8000042D \wx0002 // front platform
00 0B 00 // x/y/z offset
10 05 07 // x/y/z extent
07 // register

// 01 (y)
42
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0002 // back platform
00 00 00 // x/y/z offset
05 10 07 // x/y/z extent
06 // register
\dx8000042E \wx0002 // front platform
0B 00 00 // x/y/z offset
05 10 07 // x/y/z extent
07 // register

0B 02 // use callback to determine layout

10 \w400 // set little/lots threshold

11 FF // pylon placement (all)

12 \dx00000010 // cargo types for randomisation triggers

// Test tile along platform to south for cattle docks
2937 * 18	 02 04 0B // ID
85 68 01 // station info param 0/1; check tile along platform to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8000 3B 05 3B 05 // cattle docks
\wx8002 // south end

// Test tile along platform to north for cattle docks
2938 * 18	 02 04 0D // ID
85 68 0F // station info param 0/-1; check tile along platform to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8008 3B 05 3B 05 // cattle docks
\wx8000 // north end

// Test tile on platform to north for cattle docks
2939 * 18	 02 04 09 // ID
85 68 F0 // station info param -1/0; check tile on next platform to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8004 3B 05 3B 05 // cattle docks
\wx8000 // else

// Front platform
// Test tile on platform to south for cattle docks
2940 * 18	 02 04 0A // ID
85 68 10 // station info param 1/0; check tile on next platform to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8000 3B 05 3B 05 // cattle docks
\wx000B // else

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

2941 * 52	 02 04 15 // ID
85
7E 0B // get south end offset
20 \wx00FF
\2+
7E 0D // add north end offset
20 \wx00FF
\2+
7E 09 // add platform to north offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 0A // get tile type offset
20 \wx00FF
\2+
7E 0D // get north end offset
20 \wx00FF
\2sto 1A
00 \wx0007 // store in register
01
\wx00D6 \w0 \w0
\wx00D6

// Purchase
2942 * 27	 02 04 16 // ID
85
1A // all bits on
20 \wx0002
\2sto 1A
20 \wx0006 // store in register
\2sto 1A
00 \wx0007 // store in register
01
\wx00D6 \w0 \w0
\wx00D6

2943 * 52	 02 04 17 // ID
85
7E 0B // get south end offset
20 \wx00FF
\2+
7E 0D // add north end offset
20 \wx00FF
\2+
7E 09 // add platform to north offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 0A // get tile type offset
20 \wx00FF
\2+
7E 0D // get north end offset
20 \wx00FF
\2sto 1A
00 \wx0007 // store in register
01
\wx00D5 \w0 \w0
\wx00D5

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2944 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
2945 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
2946 * 15	 02 04 07 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx0017
\wx0017
\wx0017
\wx0017

//@@WARNING ENABLE 113

// No suitable cargo
2947 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

2948 * 13	 03 04
01 3B
02
04 \wx0004 // livestock
FF \wx0005 // purchase
\wx0006 // no suitable cargo

2949 * 186	 00 04 04 01 3C
08 "ISRR"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0002 // back platform
00 00 00 // x/y/z offset
10 05 14 // x/y/z extent
06 // register
\dx8000842E \wx0002 // front platform
00 0B 00 // x/y/z offset
10 05 0C // x/y/z extent
06 // register

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0002 // back platform
00 00 00 // x/y/z offset
05 10 14 // x/y/z extent
06 // register
\dx80008430 \wx0002 // front platform
0B 00 00 // x/y/z offset
05 10 0C // x/y/z extent
06 // register

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008431 \wx0000 // back platform
00 00 00 // x/y/z offset
10 05 14 // x/y/z extent
\dx80008432 \wx0000 // front platform
00 0B 00 // x/y/z offset
10 05 0C // x/y/z extent

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008433 \wx0000 // back platform
00 00 00 // x/y/z offset
05 10 14 // x/y/z extent
\dx80008434 \wx0000 // front platform
0B 00 00 // x/y/z offset
05 10 0C // x/y/z extent

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

// Test variable 10 for real sprites
2950 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00D4 // milk tank sprites

2951 * 15	 02 04 06 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx8004
\wx8008
\wx800C
\wx8010

2952 * 14	 02 04 07 // ID
81 41
04 0F // position along platform from south
01
\wx8014 00 00
\wx0006

2953 * 14	 02 04 08 // ID
81 41
00 0F // position along platform from north
01
\wx8000 00 00
\wx0007

2954 * 14	 02 04 09 // ID
81 41
10 0F // length of platforms
01
\wx0006 01 01
\wx0008

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

2955 * 40	 02 04 15 // ID
85
7E 09 // get sprite offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2956 * 14	 02 04 0A // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase list
2957 * 14	 02 04 0C // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

2958 * 10	 03 04
01 3C
01
FF \wx000C // purchase
\wx000A

2959 * 110	 00 04 08 01 3D
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // sheds
00 00 00 // x/y/z offset
10 10 09 // x/y/z extent
\dx8000042D \wx0041 // snow
00 00 80 // x/y/z offset
03 // register
05 // value for variable 10

// 01 (y)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // sheds
00 00 00 // x/y/z offset
10 10 09 // x/y/z extent
\dx8000042E \wx0041 // snow
00 00 80 // x/y/z offset
03 // register
05 // value for variable 10

0B 02 // use callback to determine layout

10 \w600 // set little/lots threshold

12 \dx00000010 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

2960 * 4	 01 04 04 02

2961 images/newlivestock.pcx 5 275 01 31 50 -27 -5 // 042D x, empty
2962 images/newlivestock.pcx 225 275 01 31 50 -21 -5 // 042E y, empty
2963 images/newlivestock.pcx 60 275 01 31 50 -27 -5 // 042D x, level 1
2964 images/newlivestock.pcx 280 275 01 31 50 -21 -5 // 042E y, level 1
2965 images/newlivestock.pcx 115 275 01 31 50 -27 -5 // 042D x, level 2
2966 images/newlivestock.pcx 335 275 01 31 50 -21 -5 // 042E y, level 2
2967 images/newlivestock.pcx 170 275 01 31 50 -27 -5 // 042D x, level 3
2968 images/newlivestock.pcx 390 275 01 31 50 -21 -5 // 042E y, level 3

2969 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

2970 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

2971 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

2972 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

2973 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

2974 * 7	 02 04 02 // ID
00 01
\w0

2975 * 4	 01 04 01 02
2976 images/newlivestock.pcx 445 275 01 24 50 0 0 // 042D x, snow
2977 images/newlivestock.pcx 500 275 01 24 50 0 0 // 042E y, snow

2978 * 7	 02 04 0A // ID
00 01
\w0

// Test variable 10 for real sprites
2979 * 18	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FF 04 04 // ground overlay sprites
\wx000A 05 05 // snow sprites
\wx0000 // cattle shed sprites

// Test variable 10 for real sprites - empty
2980 * 18	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FF 04 04 // ground overlay sprites
\wx000A 05 05 // snow sprites
\wx0002 // cattle shed sprites - empty

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

2981 * 34	 02 04 12 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// Empty
2982 * 34	 02 04 13 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register
01
\wx001C \w0 \w0
\wx001C

// Purchase
2983 * 22	 02 04 14 // ID
81
1A // all bits on
20 00
\2sto 1A
20 03 // store in register - show/hide snow
\2sto 1A
00 10 // store in register - ground sprite offset
01
\wx001B 00 00
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

2984 * 14	 02 04 01 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0012 // real sprites

// Purchase list
2985 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0014 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
2986 * 15	 02 04 07 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx0013
\wx0013
\wx0013
\wx0013

//@@WARNING ENABLE 113

// No suitable cargo
2987 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

2988 * 13	 03 04
01 3D
02
04 \wx0001 // livestock
FF \wx0005 // purchase
\wx0003 // no suitable cargo
2989 * 198	 00 04 06 01 3E
08 "ISRR"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0006 // fruit back
00 00 00 // x/y/z offset
10 03 0A // x/y/z extent
11 13 // register
\dx8000842D \wx0006 // fruit front
00 0D 00 // x/y/z offset
10 03 0A // x/y/z extent
12 13 // register

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008431 \wx0006 // fruit back
00 00 00 // x/y/z offset
03 10 0A // x/y/z extent
11 13 // register
\dx80008431 \wx0006 // fruit front
0D 00 00 // x/y/z offset
03 10 0A // x/y/z extent
12 13 // register

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // fruit back
00 00 00 // x/y/z offset
10 03 0A // x/y/z extent
\dx8000042E \wx0000 // fruit front
00 0D 00 // x/y/z offset
10 03 0A // x/y/z extent

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000431 \wx0000 // fruit back
00 00 00 // x/y/z offset
03 10 0A // x/y/z extent
\dx80000432 \wx0000 // fruit front
0D 00 00 // x/y/z offset
03 10 0A // x/y/z extent

0B 02 // use callback for sprite layout

10 \w600 // set little/lots threshold
12 \dx00002000 // cargo types for randomisation triggers

11 FF // pylon placement (all)

// Real sprites

// Test variable 10 for real sprites
2990 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E2 // fruit sprites

// Test variable 10 for real sprites - no fruit
2991 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E1 // fruit sprites - empty

// Select fruit variety back
2992 * 15	 02 04 40 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8003
\wx8000
\wx8001
\wx8002

// Select fruit variety front
2993 * 15	 02 04 41 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8000
\wx8001
\wx8002
\wx8003

//@@WARNING DISABLE 100

// Fruit
2994 * 61	 02 04 20 // ID
85
1A // all bits on
20 \w0 // no recolour needed for fruit
\2sto 1A
20 \wx0013 // store in register - recolour offset
\2rst
7E 40 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E 41 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// Beans
2995 * 67	 02 04 22 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w15 // add offset of recolour sprite for beans
\2sto 1A
20 \wx0013 // store in register - recolour offset
\2rst
7E 40 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E 41 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// No suitable cargo
2996 * 61	 02 04 21 // ID
85
1A // all bits on
20 \w0 // no recolour needed
\2sto 1A
20 \wx0013 // store in register - recolour offset
\2rst
7E 40 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E 41 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001C \w0 \w0
\wx001C

//@@WARNING ENABLE 100

// Fruit
2997 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites

// Beans
2998 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0022 // real sprites

// Purchase
2999 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3000 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021

//@@WARNING ENABLE 113

// No suitable cargo
3001 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000B // real sprites

3002 * 19	 03 04
01 3E
04
0D \wx0004 // fruit
2E \wx0004 // fruit (and veg)
39 \wx0005 // beans
FF \wx0002 // purchase
\wx0003 // no suitable cargo

3003 * 176	 00 04 08 01 3F
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
45
\dx00008F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0006 // fruit
00 00 00 // x/y/z offset
10 03 0B // x/y/z extent
04 13 // register - sprite offset
\dx8000842D \wx0006 // fruit
00 04 00 // x/y/z offset
10 03 0B // x/y/z extent
05 13 // register - sprite offset
\dx8000842D \wx0006 // fruit
00 08 00 // x/y/z offset
10 03 0B // x/y/z extent
06 13 // register - sprite offset
\dx8000842D \wx0006 // fruit
00 0C 00 // x/y/z offset
10 03 0B // x/y/z extent
07 13 // register - sprite offset

// 01 (y)
45
\dx00008F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008431 \wx0006 // fruit
00 00 00 // x/y/z offset
03 10 0B // x/y/z extent
04 13 // register - sprite offset
\dx80008431 \wx0006 // fruit
04 00 00 // x/y/z offset
03 10 0B // x/y/z extent
05 13 // register - sprite offset
\dx80008431 \wx0006 // fruit
08 00 00 // x/y/z offset
03 10 0B // x/y/z extent
06 13 // register - sprite offset
\dx80008431 \wx0006 // fruit
0C 00 00 // x/y/z offset
03 10 0B // x/y/z extent
07 13 // register - sprite offset

0B 02 // use callback for sprite layout

10 \w900 // set little/lots threshold
12 \dx00002000 // cargo types for randomisation triggers

14 FF // catenary (none)
11 00 // pylon placement (none)
15 FF // prevent trains entering the tile from any direction

// Real sprites

// Test variable 10 for real sprites
3004 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprite
\wx00E2 // fruit sprites

// Empty
3005 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprite
\wx00E1 // fruit sprites - empty

// Select fruit variety 1
3006 * 15	 02 04 40 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8000
\wx8001
\wx8002
\wx8003

// Select fruit variety 2
3007 * 15	 02 04 41 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8003
\wx8002
\wx8000
\wx8001

// Select fruit variety 3
3008 * 15	 02 04 42 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8002
\wx8003
\wx8001
\wx8000

// Select fruit variety 4
3009 * 15	 02 04 43 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8001
\wx8000
\wx8003
\wx8002

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Fruit
3010 * 77	 02 04 20 // ID
85
1A // all bits on
20 \wx0000 // no recolour needed for fruit
\2sto 1A
20 \wx0013 // store in register - recolour offset
\2rst
7E 40 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst
7E 41 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E 42 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 43 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Beans
3011 * 83	 02 04 23 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w15 // add offset of recolour sprite for beans
\2sto 1A
20 \wx0013 // store in register - recolour offset
\2rst
7E 40 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst
7E 41 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E 42 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 43 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
3012 * 77	 02 04 22 // ID
85
1A // all bits on
20 \wx0000 // no recolour needed
\2sto 1A
20 \wx0013 // store in register - recolour offset
\2rst
7E 40 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst
7E 41 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E 42 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 43 // get random fruit variety offset
20 \wx00FF
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

// Purchase
3013 * 72	 02 04 21 // ID
85
1A // all bits on
20 \wx0000 // no recolour needed for fruit
\2sto 1A
20 \wx0013 // store in register - recolour offset
\2rst
1A
20 \w0 // fruit variety
\2sto 1A
20 \wx0004 // store in register
\2rst 1A
20 \w1 // fruit variety
\2sto 1A
20 \wx0005 // store in register
\2rst 1A
20 \w2 // fruit variety
\2sto 1A
20 \wx0006 // store in register
\2rst 1A
20 \w3 // fruit variety
\2sto 1A
20 \wx0007 // store in register
\2rst 1A
20 \wx0000
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Fruit
3014 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites

// Beans
3015 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0023 // real sprites

// Purchase
3016 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3017 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
3018 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000B // real sprites

3019 * 19	 03 04
01 3F
04
0D \wx0004 // fruit
2E \wx0004 // fruit (and veg)
39 \wx0005 // beans
FF \wx0002 // purchase
\wx0003 // no suitable cargo
3020 * 202	 00 04 06 01 40
08 "ISRR"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0006 // back mineral pile
00 00 00 // x/y/z offset
10 05 0A // x/y/z extent
05 12 // register
\dx8000842D \wx0006 // front mineral pile
00 0B 00 // x/y/z offset
10 05 0A // x/y/z extent
06 12 // register

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0006 // back mineral pile
00 00 00 // x/y/z offset
05 10 0A // x/y/z extent
05 12 // register
\dx8000842F \wx0006 // front mineral pile
0B 00 00 // x/y/z offset
05 10 0A // x/y/z extent
06 12 // register

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0004 // back mineral pile
00 00 00 // x/y/z offset
10 05 0A // x/y/z extent
12 // register
\dx8000842E \wx0004 // front mineral pile
00 0B 00 // x/y/z offset
10 05 0A // x/y/z extent
12 // register

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0004 // back mineral pile
00 00 00 // x/y/z offset
05 10 0A // x/y/z extent
12 // register
\dx80008430 \wx0004 // front mineral pile
0B 00 00 // x/y/z offset
05 10 0A // x/y/z extent
12 // register

0B 02 // use callback to determine layout

10 \w400 // little/lots threshold

11 FF // Pylon placement (all)

12 \dx03C04102 // cargo types for randomisation triggers

// Test variable 10 for real sprites
3021 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E6 // mineral pile sprites

// Test variable 10 for real sprites - empty
3022 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E5 // mineral pile sprites - empty

// Random offset for mineral pile variety - back
3023 * 11	 02 04 25 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bit 16
02
\wx8000
\wx8001

// Random offset for mineral pile variety - front
3024 * 11	 02 04 26 // ID
80
00 // no more cargo (triggered by random in graphics chain)
11 // use bit 17
02
\wx8000
\wx8001

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

3025 * 67	 02 04 10 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w6 // add offset of recolour sprite for coal
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random variety offset - back
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E 26 // get random variety offset - front
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - mineral pile sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3026 * 61	 02 04 11 // ID
85
1A // all bits on
20 \wx0000 // no recolour needed for iron ore
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random variety offset - back
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E 26 // get random variety offset - front
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - mineral pile sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3027 * 67	 02 04 12 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w7 // add offset of recolour sprite for copper ore
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random variety offset - back
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E 26 // get random variety offset - front
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - mineral pile sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3028 * 67	 02 04 13 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w8 // add offset of recolour sprite for clay
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random variety offset - back
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E 26 // get random variety offset - front
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - mineral pile sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3029 * 67	 02 04 14 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w9 // add offset of recolour sprite for gravel
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random variety offset - back
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E 26 // get random variety offset - front
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - mineral pile sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3030 * 67	 02 04 15 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w10 // add offset of recolour sprite for limestone
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random variety offset - back
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E 26 // get random variety offset - front
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - mineral pile sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3031 * 67	 02 04 16 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w11 // add offset of recolour sprite for sand
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random variety offset - back
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E 26 // get random variety offset - front
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - mineral pile sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3032 * 67	 02 04 17 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w12 // add offset of recolour sprite for bauxite
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random variety offset - back
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E 26 // get random variety offset - front
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - mineral pile sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3033 * 67	 02 04 18 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w13 // add offset of recolour sprite for nitrates
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 25 // get random variety offset - back
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E 26 // get random variety offset - front
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - mineral pile sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
3034 * 59	 02 04 2D // ID
85
1A // all bits on
20 \wx0000 // no recolour needed
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0006 // store in register - mineral pile sprite offset
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

// Purchase
3035 * 28	 02 04 2E // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w6 // add offset of recolour sprite for coal
\2sto 1A
00 \wx0012 // store in register - recolour offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

3036 * 14	 02 04 30 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0010 // real sprites - coal

3037 * 14	 02 04 31 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0011 // real sprites - iron ore

3038 * 14	 02 04 32 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0012 // real sprites - copper ore

3039 * 14	 02 04 33 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0013 // real sprites - clay

3040 * 14	 02 04 34 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0014 // real sprites - gravel

3041 * 14	 02 04 35 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites - limestone

3042 * 14	 02 04 36 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites - sand

3043 * 14	 02 04 37 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0017 // real sprites - bauxite

3044 * 14	 02 04 38 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0018 // real sprites - nitrates

// Purchase
3045 * 14	 02 04 3F // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx002E // real sprites - show coal

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3046 * 39	 02 04 07 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D
\wx002D

//@@WARNING ENABLE 113

// No suitable cargo
3047 * 14	 02 04 3E // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites - empty

3048 * 37	 03 04
01 40
0A
01 \wx0030 // coal
08 \wx0031 // iron ore
0E \wx0032 // copper ore
16 \wx0033 // clay
17 \wx0034 // gravel
18 \wx0035 // limestone
19 \wx0036 // sand
28 \wx0037 // bauxite
3A \wx0038 // nitrates
FF \wx003F // purchase
\wx003E // no suitable cargo

3049 * 186	 00 04 06 01 41
08 "ISRR"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000 // back
00 00 00 // x/y/z offset
10 05 16 // x/y/z extent
\dx8000842E \wx0000 // front
00 0B 00 // x/y/z offset
10 05 24 // x/y/z extent

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0000 // back
00 00 00 // x/y/z offset
05 10 18 // x/y/z extent
\dx80008430 \wx0000 // front
0B 00 00 // x/y/z offset
05 10 24 // x/y/z extent

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000 // back
00 00 00 // x/y/z offset
10 05 16 // x/y/z extent
\dx8000842E \wx0000 // front
00 0B 00 // x/y/z offset
10 05 24 // x/y/z extent

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0000 // back
00 00 00 // x/y/z offset
05 10 18 // x/y/z extent
\dx80008430 \wx0000 // front
0B 00 00 // x/y/z offset
05 10 24 // x/y/z extent

0B 02 // use callback to determine layout

0D FE // only allow a length of 1

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

3050 * 4	 01 04 01 04
3051 images/newmines7.pcx 7 8 01 22 4 -16 -5 // x, back
3052 images/newmines7.pcx 17 8 01 43 33 -37 -30 // x, front
3053 images/newmines7.pcx 56 8 01 24 4 14 -7 // y, back
3054 images/newmines7.pcx 66 8 01 43 33 6 -30 // y, front

3055 * 7	 02 04 00 // ID
00 01
\w0

// Test variable 10 for real sprites
3056 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx0000 // loading chute sprites

//@@WARNING DISABLE 170
//@@WARNING DISABLE 100

3057 * 29	 02 04 15 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

3058 * 14	 02 04 01 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
3059 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

3060 * 10	 03 04
01 41
01
FF \wx0003 // purchase
\wx0001

3061 * 156	 00 04 0B 01 42
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent
\dx80000439 \wx0001 // snow
00 01 80 // x/y/z offset
03 // register
\dx8000042E \wx0003 // conveyor overlay (child)
27 00 80 // x/y/z offset
01 05 // registers
\dx8000042E \wx0041 // bulldozer (child)
07 1B 80 // x/y/z offset
07 // register
05 // value for variable 10

// 01 (y)
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000433 \wx0000 // sprite
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent
\dx8000043A \wx0001 // snow
16 01 80 // x/y/z offset
03 // register
\dx80000434 \wx0003 // conveyor overlay (child)
02 00 80 // x/y/z offset
01 05 // registers
\dx8000042D \wx0041 // bulldozer (child)
28 1B 80 // x/y/z offset
07 // register
05 // value for variable 10

0B 02 // use callback to determine layout

// Only allow a 1 x 1 layout
0C FE
0D FE

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

16 \wx0104 // animation info 5 frames looping
17 03 // animation speed 2^3 ticks per frame
18 \wx0006 // animation triggers - cargo arrives (2), cargo removed (4)

3062 * 4	 01 04 01 0E
3063 images/newmines7.pcx 7 68 41 35 49 -17 -9 // 042D x, conveyor and building
3064 images/newmines7.pcx 74 68 01 6 8 0 0 // 043E x, frame 0
3065 images/newmines7.pcx 85 68 01 6 8 0 0 // 042F x, frame 1
3066 images/newmines7.pcx 96 68 01 6 8 0 0 // 0420 x, frame 2
3067 images/newmines7.pcx 107 68 01 6 8 0 0 // 0431 x, frame 3
3068 images/newmines7.pcx 118 68 01 6 8 0 0 // 0432 x, frame 4

3069 images/newmines7.pcx 131 68 41 35 49 -30 -9 // 0433 y, conveyor and building
3070 images/newmines7.pcx 198 68 01 6 8 0 0 // 0434 y, frame 0
3071 images/newmines7.pcx 209 68 01 6 8 0 0 // 0435 y, frame 1
3072 images/newmines7.pcx 220 68 01 6 8 0 0 // 0436 y, frame 2
3073 images/newmines7.pcx 231 68 01 6 8 0 0 // 0437 y, frame 3
3074 images/newmines7.pcx 242 68 01 6 8 0 0 // 0438 y, frame 4

3075 images/newmines7.pcx 7 130 01 16 27 0 0 // 0439 x, snow
3076 images/newmines7.pcx 39 130 01 16 27 0 0 // 043A y, snow

3077 * 7	 02 04 00 // ID
00 01
\w0

// Test variable 10 for real sprites
3078 * 18	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FF 04 04 // ground overlay sprites
\wx00CE 05 05 // bulldozer
\wx0000 // conveyor sprites

// Conveyor belt show/hide flag
3079 * 14	 02 04 05 // ID
81 4A // animation frame
00 FF
01
\wx8001 00 04
\wx8000 // hide for last frame

// Random bulldozer
3080 * 11	 02 04 06 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

// Animation control start/stop
3081 * 18	 02 04 21 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx80FE 01 01 // cargo arrives - start
\wx80FF 02 02 // cargo completely taken - stop
\wx80FD // do nothing

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3082 * 66	 02 04 12 // ID
85
4A // animation frame
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - conveyor overlay offset
\2rst
7E 05 // get hide/show flag
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show conveyor overlay flag
\2rst
7E 06 // get bulldozer visibility flag
20 \wx7FFF
\2sto 1A
20 \wx0007 // store in register - show/hide bulldozer
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
3083 * 52	 02 04 13 // ID
85
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0005 // store in register - conveyor overlay offset
\2sto 1A
20 \wx0001 // store in register - show conveyor overlay flag
\2rst
1A // all bits on
20 \wx0001 // val = 1
\2sto 1A
20 \wx0007 // store in register - show/hide bulldozer
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback handler
3084 * 23	 02 04 07 // ID
85 0C // callback
00 \wxFFFF
02
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0021 \wx0140 \wx0140 // animation control - called by event (cargo arrives)
\wx0012 // real sprites

// Purchase
3085 * 14	 02 04 08 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0013 // real sprites

3086 * 10	 03 04
01 42
01
FF \wx0008 // purchase
\wx0007

3087 * 156	 00 04 0B 01 43
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // sprite
00 00 00 // x/y/z offset
10 10 2A // x/y/z extent
\dx80000439 \wx0001 // snow
10 1C 80 // x/y/z offset
03 // register
\dx8000042E \wx0003 // conveyor overlay (child)
06 02 80 // x/y/z offset
01 05 // registers
\dx80000430 \wx0041 // bulldozer (child)
14 33 80 // x/y/z offset
07 // register
05 // value for variable 10

// 01 (y)
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000433 \wx0000 // sprite
00 00 00 // x/y/z offset
10 10 2A // x/y/z extent
\dx8000043A \wx0001 // snow
00 1C 80 // x/y/z offset
03 // register
\dx80000434 \wx0003 // conveyor overlay (child)
16 02 80 // x/y/z offset
01 05 // registers
\dx8000042F \wx0041 // bulldozer (child)
18 33 80 // x/y/z offset
07 // register
05 // value for variable 10

0B 02 // use callback to determine layout

// Only allow a 1 x 1 layout
0C FE
0D FE

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

16 \wx0104 // animation info 5 frames looping
17 03 // animation speed 2^3 ticks per frame
18 \wx0006 // animation triggers - cargo arrives (2), cargo removed (4)

3088 * 4	 01 04 01 0E
3089 images/newmines7.pcx 424 68 41 59 45 -27 -30 // 042D x, conveyor and building
3090 images/newmines7.pcx 491 68 01 28 17 0 0 // 043E x, frame 0
3091 images/newmines7.pcx 511 68 01 28 17 0 0 // 042F x, frame 1
3092 images/newmines7.pcx 531 68 01 28 17 0 0 // 0420 x, frame 2
3093 images/newmines7.pcx 551 68 01 28 17 0 0 // 0431 x, frame 3
3094 images/newmines7.pcx 571 68 01 28 17 0 0 // 0432 x, frame 4

3095 images/newmines7.pcx 255 68 41 59 45 -16 -30 // 0433 y, conveyor and building
3096 images/newmines7.pcx 322 68 01 28 17 0 0 // 0434 y, frame 0
3097 images/newmines7.pcx 342 68 01 28 17 0 0 // 0435 y, frame 1
3098 images/newmines7.pcx 362 68 01 28 17 0 0 // 0436 y, frame 2
3099 images/newmines7.pcx 382 68 01 28 17 0 0 // 0437 y, frame 3
3100 images/newmines7.pcx 402 68 01 28 17 0 0 // 0438 y, frame 4

3101 images/newmines7.pcx 105 130 01 16 29 0 0 // 0439 x, snow
3102 images/newmines7.pcx 71 130 01 16 29 0 0 // 043A y, snow

3103 * 7	 02 04 00 // ID
00 01
\w0

// Test variable 10 for real sprites
3104 * 18	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FF 04 04 // ground overlay sprites
\wx00CE 05 05 // bulldozer
\wx0000 // conveyor sprites

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3105 * 66	 02 04 12 // ID
85
4A // animation frame
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - conveyor overlay offset
\2rst
7E 05 // get hide/show flag
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show conveyor overlay flag
\2rst
7E 06 // get bulldozer visibility flag
20 \wx7FFF
\2sto 1A
20 \wx0007 // store in register - show/hide bulldozer
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
3106 * 52	 02 04 13 // ID
85
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0005 // store in register - conveyor overlay offset
\2sto 1A
20 \wx0001 // store in register - show conveyor overlay flag
\2rst
1A // all bits on
20 \wx0001 // val = 1
\2sto 1A
20 \wx0007 // store in register - show/hide bulldozer
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback handler
3107 * 23	 02 04 07 // ID
85 0C // callback
00 FF FF
02
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0021 \wx0140 \wx0140 // animation control - called by event (cargo arrives)
\wx0012 // real sprites

// Purchase
3108 * 14	 02 04 08 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0013 // real sprites

3109 * 10	 03 04
01 43
01
FF \wx0008 // purchase
\wx0007
3110 * 92	 00 04 08 01 44
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0006 // mineral pile
00 00 00 // x/y/z offset
10 10 10 // x/y/z extent
05 12 // registers

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0006 // mineral pile
00 00 00 // x/y/z offset
10 10 10 // x/y/z extent
05 12 // registers

0B 02 // use callback to determine layout

10 \w600 // little/lots threshold

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

12 \dx03C04102 // cargo types for randomisation triggers

3111 * 4	 01 04 04 04
// Empty
3112 images/newmines7.pcx 7 347 09 1 1 0 0 // 042D
3113 images/newmines7.pcx 7 347 09 1 1 0 0 // 042E
3114 images/newmines7.pcx 7 347 09 1 1 0 0 // 042F
3115 images/newmines7.pcx 7 347 09 1 1 0 0 // 0430
// Level 1
3116 images/newmines7.pcx 7 347 09 14 48 -26 7 // 042D type 1
3117 images/newmines7.pcx 65 347 09 15 42 -16 4 // 042E type 2
3118 images/newmines7.pcx 121 347 09 25 18 -10 1 // 042F type 3
3119 images/newmines7.pcx 168 347 09 14 48 -25 10 // 0430 type 4
// Level 2
3120 images/newmines7.pcx 7 374 09 19 49 -26 3 // 042D type 1
3121 images/newmines7.pcx 65 374 09 24 45 -19 -2 // 042E type 3
3122 images/newmines7.pcx 121 374 09 31 35 -14 -4 // 042F type 3
3123 images/newmines7.pcx 168 374 09 22 48 -25 2 // 0430 type 4
// Level 3
3124 images/newmines7.pcx 7 410 09 22 55 -26 3 // 042D type 1
3125 images/newmines7.pcx 65 410 09 31 53 -27 -3 // 042E type 2
3126 images/newmines7.pcx 121 410 09 31 45 -18 -4 // 042F type 3
3127 images/newmines7.pcx 168 410 09 27 50 -26 -3 // 0430 type 4

3128 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

3129 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

3130 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

3131 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

3132 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

// Empty
3133 * 7	 02 04 01 // ID
00 01
\w0

// Test variable 10 for real sprites
3134 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // mineral pile sprites

// Test variable 10 for real sprites - empty
3135 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0001 // mineral pile sprites

// Random offset for mineral pile variety
3136 * 15	 02 04 04 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8000
\wx8001
\wx8002
\wx8003

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3137 * 50	 02 04 20 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w6 // add offset of recolour sprite for coal
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 04 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3138 * 44	 02 04 21 // ID
85
1A // all bits on
20 \wx0000 // no recolour needed for iron ore
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 04 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3139 * 50	 02 04 22 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w7 // add offset of recolour sprite for copper ore
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 04 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3140 * 50	 02 04 23 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w8 // add offset of recolour sprite for clay
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 04 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3141 * 50	 02 04 24 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w9 // add offset of recolour sprite for gravel
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 04 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3142 * 50	 02 04 25 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w10 // add offset of recolour sprite for limestone
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 04 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3143 * 50	 02 04 26 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w11 // add offset of recolour sprite for sand
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 04 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3144 * 50	 02 04 27 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w12 // add offset of recolour sprite for bauxite
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 04 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3145 * 50	 02 04 28 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w13 // add offset of recolour sprite for nitrates
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 04 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
3146 * 48	 02 04 2E // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w6 // add offset of recolour sprite for coal
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
3147 * 43	 02 04 2F // ID
85
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0005 // store in register - mineral pile sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

3148 * 14	 02 04 10 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites - coal

3149 * 14	 02 04 11 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites - iron ore

3150 * 14	 02 04 12 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0022 // real sprites - copper ore

3151 * 14	 02 04 13 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0023 // real sprites - clay

3152 * 14	 02 04 14 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0024 // real sprites - gravel

3153 * 14	 02 04 15 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0025 // real sprites - limestone

3154 * 14	 02 04 16 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0026 // real sprites - sand

3155 * 14	 02 04 17 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0027 // real sprites - bauxite

3156 * 14	 02 04 18 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0028 // real sprites - nitrates

// Purchase
3157 * 14	 02 04 1E // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx002E // real sprites - show coal

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3158 * 39	 02 04 07 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F

//@@WARNING ENABLE 113

// No suitable cargo
3159 * 14	 02 04 1F // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites - empty

3160 * 37	 03 04
01 44
0A
01 \wx0010 // coal
08 \wx0011 // iron ore
0E \wx0012 // copper ore
16 \wx0013 // clay
17 \wx0014 // gravel
18 \wx0015 // limestone
19 \wx0016 // sand
28 \wx0017 // bauxite
3A \wx0018 // nitrates
FF \wx001E // purchase
\wx001F // no suitable cargo
3161 * 4	 01 04 02 08
// Empty
3162 images/vehicles.pcx 116 54 01 19 23 -14 -8 // 042D x, mining truck new N
3163 images/vehicles.pcx 21 54 01 19 23 -7 -8 // 042E y, mining truck new N
3164 images/vehicles.pcx 52 54 01 18 23 -13 -7 // 042F x, mining truck new S
3165 images/vehicles.pcx 84 54 01 18 23 -8 -7 // 0430 y, mining truck new S

3166 images/vehicles.pcx 245 54 01 18 24 -15 -7 // 0431 x, mining truck old N
3167 images/vehicles.pcx 151 54 01 18 24 -7 -7 // 0432 y, mining truck old N
3168 images/vehicles.pcx 183 54 01 18 22 -12 -7 // 0433 x, mining truck old S
3169 images/vehicles.pcx 214 54 01 18 22 -8 -7 // 0434 y, mining truck old S

// Full
3170 images/vehicles.pcx 116 79 01 19 23 -14 -8 // 042D x, mining truck new N
3171 images/vehicles.pcx 21 79 01 19 23 -7 -8 // 042E y, mining truck new N
3172 images/vehicles.pcx 52 79 01 18 23 -13 -7 // 042F x, mining truck new S
3173 images/vehicles.pcx 84 79 01 18 23 -8 -7 // 0430 y, mining truck new S

3174 images/vehicles.pcx 245 79 01 18 24 -15 -7 // 0431 x, mining truck old N
3175 images/vehicles.pcx 151 79 01 18 24 -7 -7 // 0432 y, mining truck old N
3176 images/vehicles.pcx 183 79 01 18 22 -12 -7 // 0433 x, mining truck old S
3177 images/vehicles.pcx 214 79 01 18 22 -8 -7 // 0434 y, mining truck old S

3178 * 17	 02 04 10 // ID
05 01
\w0 \w1 \w1 \w1 \w1
\w1

3179 * 17	 02 04 11 // ID
05 01
\w0 \w0 \w1 \w1 \w1
\w1

3180 * 17	 02 04 12 // ID
05 01
\w0 \w0 \w0 \w1 \w1
\w1

3181 * 17	 02 04 13 // ID
05 01
\w0 \w0 \w0 \w0 \w1
\w1

3182 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

3183 * 7	 02 04 01 // ID
00 01
\w0

3184 * 96	 00 04 0A 01 45
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0006 // mineral truck
03 05 00 // x/y/z offset
08 05 0B // x/y/z extent
05 12 // registers

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842E \wx0006 // mineral truck
05 03 00 // x/y/z offset
05 08 0B // x/y/z extent
05 12 // registers

0B 03 // use callback to determine date availability (1) and layout (2)

// Only allow a 1 x 1 layout
0C FE
0D FE

10 \w400 // little/lots threshold

12 \dx03C04102 // cargo types for randomisation triggers

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
3185 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // mineral truck sprites

// No suitable cargo
// Test variable 10 for real sprites
3186 * 14	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0001 // mineral truck sprites - empty

// Random offset for truck variety
3187 * 11	 02 04 08 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8002

// Sprite offset for early trucks
3188 * 17	 02 04 07 // ID
85 FA // date station was built
00 \wxFFFF
01
\wx8004 \w0 \w01/01/1990
\wx8000

// Sprite offset for early trucks - purchase
3189 * 17	 02 04 09 // ID
85 00 // current date
00 \wxFFFF
01
\wx8004 \w0 \w01/01/1990
\wx8000

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3190 * 56	 02 04 20 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w6 // add offset of recolour sprite for coal
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2+
7E 07 // add offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3191 * 50	 02 04 21 // ID
85
1A // all bits on
20 \wx0000 // no recolour needed for iron ore
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2+
7E 07 // add offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3192 * 56	 02 04 22 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w7 // add offset of recolour sprite for copper ore
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2+
7E 07 // add offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3193 * 56	 02 04 23 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w8 // add offset of recolour sprite for clay
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2+
7E 07 // add offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3194 * 56	 02 04 24 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w9 // add offset of recolour sprite for gravel
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2+
7E 07 // add offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3195 * 56	 02 04 25 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w10 // add offset of recolour sprite for limestone
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2+
7E 07 // add offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3196 * 56	 02 04 26 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w11 // add offset of recolour sprite for sand
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2+
7E 07 // add offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3197 * 56	 02 04 27 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w12 // add offset of recolour sprite for bauxite
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2+
7E 07 // add offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3198 * 56	 02 04 28 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w13 // add offset of recolour sprite for nitrates
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2+
7E 07 // add offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
3199 * 49	 02 04 2E // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w6 // add offset of recolour sprite for coal
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 09 // get offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// No suitable cargo
3200 * 50	 02 04 2F // ID
85
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2+
7E 07 // add offset for early trucks
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - truck sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001A \w0 \w0
\wx001A

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Check for availability
3201 * 14	 02 04 0C // ID
81 01
00 FF
01 // Number of values to check for
\wx8000 00 \b1960 // do not allow build before 1960
\wx8001

3202 * 14	 02 04 10 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites - coal

3203 * 14	 02 04 11 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites - iron ore

3204 * 14	 02 04 12 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0022 // real sprites - copper ore

3205 * 14	 02 04 13 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0023 // real sprites - clay

3206 * 14	 02 04 14 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0024 // real sprites - gravel

3207 * 14	 02 04 15 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0025 // real sprites - limestone

3208 * 14	 02 04 16 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0026 // real sprites - sand

3209 * 14	 02 04 17 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0027 // real sprites - bauxite

3210 * 14	 02 04 18 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0028 // real sprites - nitrates

// For purchase list
3211 * 18	 02 04 1E // ID
81 0C // callback
00 FF
02
\wx000C 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx002E // real sprites - show coal

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3212 * 15	 02 04 07 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx002F
\wx002F
\wx002F
\wx002F

//@@WARNING ENABLE 113

// For no suitable cargo
3213 * 14	 02 04 1F // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites - empty

3214 * 37	 03 04
01 45
0A
01 \wx0010 // coal
08 \wx0011 // iron ore
0E \wx0012 // copper ore
16 \wx0013 // clay
17 \wx0014 // gravel
18 \wx0015 // limestone
19 \wx0016 // sand
28 \wx0017 // bauxite
3A \wx0018 // nitrates
FF \wx001E // purchase
\wx001F // no suitable cargo

3215 * 96	 00 04 0A 01 46
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0006 // bulldozer
00 00 00 // x/y/z offset
10 10 10 // x/y/z extent
05 12 // registers

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842E \wx0006 // bulldozer
00 00 00 // x/y/z offset
10 10 10 // x/y/z extent
05 12 // registers

0B 03 // use callback to determine date availability (1) and layout (2)

// Only allow a 1 x 1 layout
0C FE
0D FE

10 \w600 // little/lots threshold

12 \dx03C04102 // cargo types for randomisation triggers

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

3216 * 4	 01 04 04 04
// Empty
3217 images/vehicles.pcx 21 235 01 13 19 -8 0 // 042D x, type 1
3218 images/vehicles.pcx 44 235 01 13 17 -5 14 // 042E y, type 1
3219 images/vehicles.pcx 21 267 01 14 17 5 6 // 042F x, type 2
3220 images/vehicles.pcx 44 267 01 13 19 7 7 // 0430 y, type 2
// Level 1
3221 images/vehicles.pcx 69 235 01 21 49 -27 0 // 042D x, type 1
3222 images/vehicles.pcx 124 235 01 23 42 -16 4 // 042E y, type 1
3223 images/vehicles.pcx 69 267 01 25 32 -10 1 // 042F x, type 2
3224 images/vehicles.pcx 107 267 01 18 32 -6 7 // 0430 y, type 2
// Level 2
3225 images/vehicles.pcx 172 235 01 21 50 -27 0 // 042D x, type 1
3226 images/vehicles.pcx 227 235 01 26 46 -20 1 // 042E y, type 1
3227 images/vehicles.pcx 145 267 01 31 36 -14 -4 // 042F x, type 2
3228 images/vehicles.pcx 187 267 01 26 35 -9 1 // 0430 y, type 2
// Level 3
3229 images/vehicles.pcx 279 235 01 27 52 -27 0 // 042D x, type 1
3230 images/vehicles.pcx 337 235 01 28 46 -20 -1 // 042E y, type 1
3231 images/vehicles.pcx 228 267 01 31 48 -26 -4 // 042F x, type 2
3232 images/vehicles.pcx 282 267 01 29 38 -12 -2 // 0430 y, type 2

3233 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

3234 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

3235 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

3236 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

3237 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

3238 * 7	 02 04 04 // ID
00 01
\w0

// Test variable 10 for real sprites
3239 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // bulldozer sprites

// No suitable cargo
// Test variable 10 for real sprites
3240 * 14	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0004 // bulldozer sprites - empty

// Random offset for bulldozer variety
3241 * 11	 02 04 08 // ID
80
00 // don't re-randomise
10 // use bit 16
02
00 80
02 80

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3242 * 50	 02 04 20 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w6 // add offset of recolour sprite for coal
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3243 * 44	 02 04 21 // ID
85
1A // all bits on
20 \wx0000 // no recolour needed for iron ore
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3244 * 50	 02 04 22 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w7 // add offset of recolour sprite for copper ore
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3245 * 50	 02 04 23 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w8 // add offset of recolour sprite for clay
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3246 * 50	 02 04 24 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w9 // add offset of recolour sprite for gravel
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3247 * 50	 02 04 25 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w10 // add offset of recolour sprite for limestone
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3248 * 50	 02 04 26 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w11 // add offset of recolour sprite for sand
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3249 * 50	 02 04 27 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w12 // add offset of recolour sprite for bauxite
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

3250 * 50	 02 04 28 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w13 // add offset of recolour sprite for nitrates
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
3251 * 48	 02 04 2E // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w6 // add offset of recolour sprite for coal
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// No suitable cargo
3252 * 44	 02 04 2F // ID
85
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E 08 // get variety offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - bulldozer sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001A \w0 \w0
\wx001A

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Check for availability
3253 * 14	 02 04 0C // ID
81 01
00 FF
01
\wx8000 00 \b1930 // do not allow build before 1930
\wx8001

3254 * 14	 02 04 10 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites - coal

3255 * 14	 02 04 11 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites - iron ore

3256 * 14	 02 04 12 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0022 // real sprites - copper ore

3257 * 14	 02 04 13 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0023 // real sprites - clay

3258 * 14	 02 04 14 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0024 // real sprites - gravel

3259 * 14	 02 04 15 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0025 // real sprites - limestone

3260 * 14	 02 04 16 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0026 // real sprites - sand

3261 * 14	 02 04 17 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0027 // real sprites - bauxite

3262 * 14	 02 04 18 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0028 // real sprites - nitrates

// Purchase
3263 * 18	 02 04 1E // ID
81 0C // callback
00 FF
02
\wx000C 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx002E // real sprites - show coal

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3264 * 15	 02 04 07 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx002F
\wx002F
\wx002F
\wx002F

//@@WARNING ENABLE 113

// No suitable cargo
3265 * 14	 02 04 1F // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites - empty

3266 * 37	 03 04
01 46
0A
01 \wx0010 // coal
08 \wx0011 // iron ore
0E \wx0012 // copper ore
16 \wx0013 // clay
17 \wx0014 // gravel
18 \wx0015 // limestone
19 \wx0016 // sand
28 \wx0017 // bauxite
3A \wx0018 // nitrates
FF \wx001E // purchase
\wx001F // no suitable cargo
3267 * 4	 01 04 01 18
3268 images/vehicles.pcx 21 159 01 20 24 -16 -7 // 042D x, loader down empty
3269 images/vehicles.pcx 51 159 01 20 26 -18 -7 // 042E x, loader down full
3270 images/vehicles.pcx 180 159 01 17 26 -18 -7 // 042F x, loader mid empty
3271 images/vehicles.pcx 83 159 01 17 28 -20 -7 // 0430 x, loader mid full
3272 images/vehicles.pcx 150 159 01 17 25 -17 -7 // 0431 x, loader up empty
3273 images/vehicles.pcx 117 159 01 17 27 -19 -7 // 0432 x, loader up full

3274 images/vehicles.pcx 21 133 01 20 24 -8 -7 // 0433 y, loader down empty
3275 images/vehicles.pcx 51 133 01 20 26 -8 -7 // 0434 y, loader down full
3276 images/vehicles.pcx 180 133 01 17 26 -8 -7 // 0435 y, loader mid empty
3277 images/vehicles.pcx 83 133 01 17 28 -8 -7 // 0436 y, loader mid full
3278 images/vehicles.pcx 150 133 01 17 25 -8 -7 // 0437 y, loader up empty
3279 images/vehicles.pcx 117 133 01 17 27 -8 -7 // 0438 y, loader up full

3280 images/vehicles.pcx 254 159 01 11 17 -10 -5 // 0439 x, loader front mid empty
3281 images/vehicles.pcx 230 159 01 11 19 -12 -5 // 043A x, loader front mid full
3282 images/vehicles.pcx 254 133 01 11 17 -7 -5 // 043B y, loader front mid empty
3283 images/vehicles.pcx 230 133 01 11 19 -7 -5 // 043C y, loader front mid full

3284 images/vehicles.pcx 129 185 01 7 11 -5 -1 // 043D f, loader front mid empty
3285 images/vehicles.pcx 114 185 01 7 11 -5 -1 // 043E f, loader front mid full

3286 images/vehicles.pcx 211 159 01 14 14 -6 -7 // 043F x, loader rear
3287 images/vehicles.pcx 211 133 01 14 14 -8 -7 // 0440 y, loader rear
3288 images/vehicles.pcx 98 185 01 16 9 -6 -9 // 0441 f, loader rear X view
3289 images/vehicles.pcx 98 185 01 16 9 -2 -9 // 0442 f, loader rear Y view

3290 images/vehicles.pcx 58 185 09 19 34 -4 -2 // 0443 x, mineral pile
3291 images/vehicles.pcx 21 185 09 18 32 -27 -2 // 0444 y, mineral pile

3292 * 7	 02 04 00 // ID
00 01
\w0

3293 * 355	 00 04 0C 01 47
08 "ISRR"

// Sprite layout
1A 06
// 00 (x) - move forward/scoop/back
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0016 // bucket loader
00 03 00 // x/y/z offset
0A 04 0E // x/y/z extent
05 12 08 09 // registers - sp offset, recolour, x, y
\dx80008443 \wx0005 // mineral pile
0C 00 00 // x/y/z offset
04 0F 08 // x/y/z extent
01 12 // registers - show, recolour

// 01 (y) - move forward/scoop/back
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008433 \wx0016 // bucket loader
03 00 00 // x/y/z offset
04 0A 0E // x/y/z extent
05 12 09 08 // registers - sp offset, recolour, x, y
\dx80008444 \wx0005 // mineral pile
00 0C 00 // x/y/z offset
0F 04 08 // x/y/z extent
01 12 // registers - show, recolour

// 02 (x) - turn
44
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043F \wx0012 // bucket loader rear
01 03 00 // x/y/z offset
06 04 0E // x/y/z extent
06 03 04 // registers - sp offset, recolour, x, y
\dx8000843B \wx0016 // bucket loader front
04 04 00 // x/y/z offset
04 06 0E // x/y/z extent
05 12 08 09 // registers - sp offset, recolour, x, y
\dx80008443 \wx0005 // mineral pile
0C 00 00 // x/y/z offset
04 0F 08 // x/y/z extent
01 12 // registers - show, recolour

// 03 (y) - turn
44
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000440 \wx0012 // bucket loader rear
03 01 00 // x/y/z offset
04 06 0E // x/y/z extent
06 04 03 // registers - sp offset, recolour, x, y
\dx80008439 \wx0016 // bucket loader front
04 04 00 // x/y/z offset
06 04 0E // x/y/z extent
15 12 09 08 // registers - sp offset, recolour, x, y
\dx80008444 \wx0005 // mineral pile
00 0C 00 // x/y/z offset
0F 04 08 // x/y/z extent
01 12 // registers - show, recolour

// 04 (x) - move forward/dump
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008433 \wx0016 // bucket loader
07 05 00 // x/y/z offset
04 0A 0E // x/y/z extent
05 12 08 09 // registers - sp offset, recolour, x, y
\dx80008443 \wx0005 // mineral pile
0C 00 00 // x/y/z offset
04 0F 08 // x/y/z extent
01 12 // registers - show, recolour

// 05 (y) - move forward/dump
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0016 // bucket loader
05 07 00 // x/y/z offset
0A 04 0E // x/y/z extent
05 12 09 08 // registers - sp offset, recolour, x, y
\dx80008444 \wx0005 // mineral pile
00 0C 00 // x/y/z offset
0F 04 08 // x/y/z extent
01 12 // registers - show, recolour

0B 03 // use callback to determine date availability (1) and layout (2)

// Only allow a 1 x 1 layout
0C FE
0D FE

12 \dx03C04102 // cargo types for randomisation triggers

// Wire and pylon placement
11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

16 \wx0123 // animation info 36 frames looping
17 04 // animation speed 2^4 ticks per frame
18 \wx0006 // animation triggers - cargo arrives (2), cargo removed (4)

// Test variable 10 for real sprites
3294 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // bucket loader sprites

// Check for availability
3295 * 14	 02 04 0C // ID
81 01
00 FF
01
\wx8000 00 \b1970 // do not allow build before 1970
\wx8001

// Animation
// Sprite offset for bucket full
3296 * 14	 02 04 70 // ID
81 4A // animation frame 0 to 35
00 FF
01
\wx8001 \b06 \b22
\wx8000

// Sprite offset - X
3297 * 30	 02 04 71 // ID
81 4A // animation frame 0 to 35
00 FF
05
\wx8002 \b07 \b16
\wx8002 \b18 \b19
\wx8004 \b20 \b27
\wx8002 \b28 \b29
\wx8002 \b31 \b35
\wx8000

// Sprite offset - Y
3298 * 38	 02 04 77 // ID
81 4A // animation frame 0 to 35
00 FF
07
\wx8002 \b07 \b13
\wx8004 \b14 \b16
\wx8002 \b18 \b19
\wx8004 \b20 \b27
\wx8002 \b28 \b29
\wx8004 \b31 \b33
\wx8002 \b34 \b35
\wx8000

// Sprite offset for rear (turning)
3299 * 18	 02 04 74 // ID
81 4A // animation frame 0 to 35
00 FF
02
\wx8002 \b15 \b17
\wx8002 \b30 \b32
\wx8000

// Offset for movement x
3300 * 62	 02 04 72 // ID
81 4A // animation frame 0 to 35
00 FF
\b13
\wx8001 \b01 \b01
\wx8002 \b02 \b02
\wx8003 \b03 \b03
\wx8004 \b04 \b08
\wx8003 \b09 \b09
\wx8002 \b10 \b10
\wx8001 \b11 \b11
\wx8001 \b15 \b15
\wx8002 \b16 \b16
\wx8003 \b17 \b17
\wx8003 \b30 \b30
\wx8002 \b31 \b31
\wx8001 \b32 \b32
\wx8000

// Offset for movement y
3301 * 54	 02 04 73 // ID
81 4A // animation frame 0 to 35
00 FF
\b11
\wx8001 \b15 \b15
\wx8002 \b16 \b16
\wx8004 \b17 \b17
\wx8001 \b19 \b19
\wx8002 \b20 \b20
\wx8003 \b21 \b26
\wx8002 \b27 \b27
\wx8001 \b28 \b28
\wx8004 \b30 \b30
\wx8002 \b31 \b31
\wx8001 \b32 \b32
\wx8000

// Offset for movement x for rear
3302 * 34	 02 04 75 // ID
81 4A // animation frame 0 to 35
00 FF
\b6
\wx8001 \b15 \b15
\wx8002 \b16 \b16
\wx8003 \b17 \b17
\wx8003 \b30 \b30
\wx8002 \b31 \b31
\wx8001 \b32 \b32
\wx8000

// Offset for movement y for rear
3303 * 26	 02 04 76 // ID
81 4A // animation frame 0 to 35
00 FF
\b4
\wx8001 \b16 \b16
\wx8002 \b17 \b17
\wx8002 \b30 \b30
\wx8001 \b31 \b31
\wx8000

// Animation start/stop control

// Animation control - maybe start animation
3304 * 14	 02 04 56 // ID
81 10 // extra callback info - random bits
00 03
01
\wx80FE 00 02 // 75% chance of start
\wx80FD // do nothing

3305 * 29	 02 04 30 // ID
85
7D 20 // read register 20 for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
20 \wxFFFF
\2+
5F // add random value (use bits 24 and 25 - different for each tile)
14 \wx0030 // shift and mask to give value between 0 and 0x30 (48)
01
\wx80FD \w0 \w178 // if not much cargo - do nothing
\wx0056 // maybe start

3306 * 29	 02 04 31 // ID
85
7D 20 // read register 20 for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
20 \wxFFFF
\2+
5F // add random value (use bits 24 and 25 - different for each tile)
14 \wx0030 // shift and mask to give value between 0 and 0x30 (48)
01
\wx80FF \w0 \w64 // if not much cargo - stop
\wx80FD // do nothing

// Animation start/stop control
3307 * 18	 02 04 60 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx0030 01 01 // cargo arrives - maybe start
\wx0031 02 02 // cargo removed - maybe stop
\wx80FD // do nothing

// Return recolour sprite offset for cargo id in register 20
3308 * 43	 02 04 79 // ID
81
7D 20 // read register 20 for this cargo type
00 FF
08
\wx8006 01 01 // coal
\wx8007 0E 0E // copper ore
\wx8008 16 16 // clay
\wx8009 17 17 // gravel
\wx800A 18 18 // limestone
\wx800B 19 19 // sand
\wx800C 28 28 // bauxite
\wx800D 3A 3A // nitrates
\wx8000

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Set registers
3309 * 122	 02 04 78 // ID
85
// mineral piles
1A // all bits on
20 \wx0001 // val = 1
\2sto 1A
20 \wx0001 // store in register - show/hide mineral pile flag
\2rst
// loader
7E 70 // get offset for bucket full
20 \wx7FFF
\2+
7E 71 // add offset for sprite - X
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - sprite offset
\2rst
7E 70 // get offset for bucket full
20 \wx7FFF
\2+
7E 77 // add offset for sprite - Y
20 \wx7FFF
\2sto 1A
20 \wx0015 // store in register - sprite offset
\2rst
7E 72 // get offset for movement
20 \wx7FFF
\2sto 1A
20 \wx0008 // store in register - x offset
\2rst
7E 73 // get offset for movement
20 \wx7FFF
\2sto 1A
20 \wx0009 // store in register - y offset
\2rst
// loader rear
7E 74 // get rear sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - sprite offset
\2rst
7E 75 // get offset for movement
20 \wx7FFF
\2sto 1A
20 \wx0003 // store in register - x offset
\2rst
7E 76 // get offset for movement
20 \wx7FFF
\2sto 1A
20 \wx0004 // store in register - y offset
\2rst
// ground
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx8000 \w0 \w0
\wx8000

3310 * 35	 02 04 20 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
7E 79 // add offset of recolour sprite for this cargo
20 \wx7FFF
\2sto 1A
20 \wx0012 // store in register - recolour sprite
\2rst
7E 78 // set registers
00 \w0
01
\wx001B \w0 \w0
\wx001B

3311 * 28	 02 04 21 // ID
85
1A // all bits on
20 \wx0000 // no recolour for iron ore
\2sto 1A
20 \wx0012 // store in register - recolour sprite
\2rst
7E 78 // set registers
00 \w0
01
\wx001B \w0 \w0
\wx001B

// Purchase
3312 * 88	 02 04 2E // ID
85
// Mineral pile
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w6 // add offset of recolour sprite for coal
\2sto 1A
20 \wx0012 // store in register - recolour sprite
\2rst
1A // all bits on
20 \wx0001 // val = 1
\2sto 1A
20 \wx0001 // store in register - show/hide mineral pile flag
\2rst
// Loader
1A // all bits on
20 \wx0001 // val = 1
\2sto 1A
20 \wx0005 // store in register - sprite offset - X
\2sto 1A
20 \wx0015 // store in register - sprite offset - Y
\2rst
// Position offsets
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0008 // store in register - x offset
\2sto 1A
20 \wx0009 // store in register - y offset
\2sto 1A
20 \wx0006 // store in register - sprite offset - rear
\2sto 1A
20 \wx0003 // store in register - x offset - rear
\2sto 1A
20 \wx0004 // store in register - y offset - rear
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// No suitable cargo
3313 * 120	 02 04 2F // ID
85
// Mineral pile
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0012 // store in register - recolour sprite
\2rst
1A // all bits on
20 \wx0000 // val = 0
\2sto 1A
20 \wx0001 // store in register - show/hide mineral pile flag
\2rst
// loader
7E 71 // get sprite offset - X
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E 77 // get sprite offset - Y
20 \wx7FFF
\2sto 1A
20 \wx0015 // store in register
\2rst
7E 72 // get offset for movement
20 \wx7FFF
\2sto 1A
20 \wx0008 // store in register - x offset
\2rst
7E 73 // get offset for movement
20 \wx7FFF
\2sto 1A
20 \wx0009 // store in register - y offset
\2rst
// loader rear
7E 74 // get sprite offset - X/Y
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 75 // get offset for movement
20 \wx7FFF
\2sto 1A
20 \wx0003 // store in register - x offset
\2rst
7E 76 // get offset for movement
20 \wx7FFF
\2sto 1A
20 \wx0004 // store in register - y offset
\2rst
// ground
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

3314 * 29	 02 04 40 // ID
85
7D 20 // read register 20 for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
20 \wxFFFF
\2+
5F // add random value (use bits 26 and 27 - different for each tile)
16 \wx0030 // shift and mask to give value between 0 and 0x30 (48)
01
\wx002F \w0 \w120 // if not much cargo - empty
\wx0020

// Iron ore is handled separately as it isn't recoloured
3315 * 23	 02 04 41 // ID
85 60 08 // cargo waiting - iron ore
20 \wxFFFF
\2+
5F // add random value (use bits 26 and 27 - different for each tile)
16 \wx0030 // shift and mask to give value between 0 and 0x30 (48)
01
\wx002F \w0 \w120 // if not much cargo - empty
\wx0021

// Callback 14
3316 * 29	 02 04 28 // ID
85 4A // animation frame 0 to 35
00 \wx00FF
03
\wx8002 \w14 \w17
\wx8004 \w18 \w29
\wx8002 \w30 \w33
\wx8000

3317 * 33	 02 04 10 // ID
85 1A // all bits on
20 \wx0001 // cargo id for coal
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
02
\wx0028 \wx0014 \wx0014 // sprite layout
\wx0060 \wx0140 \wx0140 // animation control
\wx0040 // real sprites

3318 * 33	 02 04 11 // ID
85 1A // all bits on
20 \wx0008 // cargo id for iron ore
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
02
\wx0028 \wx0014 \wx0014 // sprite layout
\wx0060 \wx0140 \wx0140 // animation control
\wx0041 // real sprites - iron ore

3319 * 33	 02 04 12 // ID
85 1A // all bits on
20 \wx000E // cargo id for copper ore
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
02
\wx0028 \wx0014 \wx0014 // sprite layout
\wx0060 \wx0140 \wx0140 // animation control
\wx0040 // real sprites

3320 * 33	 02 04 13 // ID
85 1A // all bits on
20 \wx0016 // cargo id for clay
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
02
\wx0028 \wx0014 \wx0014 // sprite layout
\wx0060 \wx0140 \wx0140 // animation control
\wx0040 // real sprites

3321 * 33	 02 04 14 // ID
85 1A // all bits on
20 \wx0017 // cargo id for gravel
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
02
\wx0028 \wx0014 \wx0014 // sprite layout
\wx0060 \wx0140 \wx0140 // animation control
\wx0040 // real sprites

3322 * 33	 02 04 15 // ID
85 1A // all bits on
20 \wx0018 // cargo id for limestone
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
02
\wx0028 \wx0014 \wx0014 // sprite layout
\wx0060 \wx0140 \wx0140 // animation control
\wx0040 // real sprites

3323 * 33	 02 04 16 // ID
85 1A // all bits on
20 \wx0019 // cargo id for sand
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
02
\wx0028 \wx0014 \wx0014 // sprite layout
\wx0060 \wx0140 \wx0140 // animation control
\wx0040 // real sprites

3324 * 33	 02 04 17 // ID
85 1A // all bits on
20 \wx0028 // cargo id for bauxite
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
02
\wx0028 \wx0014 \wx0014 // sprite layout
\wx0060 \wx0140 \wx0140 // animation control
\wx0040 // real sprites

3325 * 33	 02 04 18 // ID
85 1A // all bits on
20 \wx003A // cargo id for nitrates
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
02
\wx0028 \wx0014 \wx0014 // sprite layout
\wx0060 \wx0140 \wx0140 // animation control
\wx0040 // real sprites

// Purchase
3326 * 18	 02 04 1E // ID
81 0C // callback
00 FF
02
\wx000C 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx002E // real sprites - show coal

//@@WARNING DISABLE 113

// Dummy random action 2 triggers re-randomisation
3327 * 39	 02 04 26 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F
\wx002F

//@@WARNING ENABLE 113

// Empty
3328 * 23	 02 04 1F // ID
85 0C // callback
00 \wxFFFF
02
\wx0028 \wx0014 \wx0014 // sprite layout
\wx80FF \wx0140 \wx0140 // animation control - stop
\wx0026 // real sprites - empty

3329 * 37	 03 04
01 47
0A
01 \wx0010 // coal
08 \wx0011 // iron ore
0E \wx0012 // copper ore
16 \wx0013 // clay
17 \wx0014 // gravel
18 \wx0015 // limestone
19 \wx0016 // sand
28 \wx0017 // bauxite
3A \wx0018 // nitrates
FF \wx001E // purchase
\wx001F // no suitable cargo
3330 * 108	 00 04 08 01 48
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000 // oil storage tank
00 00 00 // x/y/z offset
0F 0F 0D // x/y/z extent
\dx8000042E \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 01 (y)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000 // oil storage tank
00 00 00 // x/y/z offset
0F 0F 0D // x/y/z extent
\dx8000042E \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

0B 02 // use callback to determine layout

10 \w600 // set little/lots threshold

12 \dx04000008 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

3331 * 4	 01 04 04 02
3332 images/newoil.pcx 3 88 01 35 45 -21 -12 // 042D empty
3333 images/newoil.pcx 3 88 01 1 1 0 0 // 042E empty - snow
3334 images/newoil.pcx 55 88 01 35 45 -21 -12 // 042D level 1
3335 images/newoil.pcx 211 88 01 4 21 13 13 // 042E level 1 - snow
3336 images/newoil.pcx 107 88 01 35 45 -21 -12 // 042D level 2
3337 images/newoil.pcx 237 88 01 9 33 7 8 // 042E level 2 - snow
3338 images/newoil.pcx 159 88 01 35 45 -21 -12 // 042D level 3
3339 images/newoil.pcx 275 88 01 14 37 5 3 // 042E level 3 - snow

3340 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

3341 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

3342 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

3343 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

3344 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

3345 * 7	 02 04 02 // ID
00 01
\w0

// Test variable 10 for real sprites
3346 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // oil storage tank sprites

// No suitable cargo
// Test variable 10 for real sprites
3347 * 14	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0002 // oil storage tank sprites - empty

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3348 * 34	 02 04 20 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// No suitable cargo
3349 * 34	 02 04 22 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001A \w0 \w0
\wx001A

//Purchase
3350 * 27	 02 04 21 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

3351 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites

// Purchase list
3352 * 14	 02 04 05 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3353 * 15	 02 04 07 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
3354 * 14	 02 04 03 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

3355 * 19	 03 04
01 48
04
03 \wx0001 // oil
1A \wx0001 // petrol
26 \wx0001 // refined products
FF \wx0005 // purchase
\wx0003 // no suitable cargo
3356 * 194	 00 04 06 01 49
08 "ISRR"

// Sprite layout
1A 04
// 00 (x) - wood platforms
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0002 // logs back
00 00 00 // x/y/z offset
10 05 0C // x/y/z extent
11 // register
\dx8000042E \wx0002 // logs front
00 0B 00 // x/y/z offset
10 05 0C // x/y/z extent
15 // register

// 01 (y) - wood platforms
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0002 // logs back
00 00 00 // x/y/z offset
05 10 0C // x/y/z extent
11 // register
\dx80000430 \wx0002 // logs front
0B 00 00 // x/y/z offset
05 10 0C // x/y/z extent
15 // register

// 02 (x) - wood platforms - purchase
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // logs back
00 00 00 // x/y/z offset
10 05 0C // x/y/z extent
\dx8000042E \wx0000 // logs front
00 0B 00 // x/y/z offset
10 05 0C // x/y/z extent

// 03 (y) - wood platforms - purchase
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // logs back
00 00 00 // x/y/z offset
05 10 0C // x/y/z extent
\dx80000430 \wx0000 // logs front
0B 00 00 // x/y/z offset
05 10 0C // x/y/z extent

0B 02 // use callback to determine layout

10 \w400 // set little/lots threshold

11 FF // pylon placement (all)

12 \dx00080080 // cargo types for randomisation triggers

// Real sprites

// Test variable 10 for real sprites
3357 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00DE // wood sprites

// Test variable 10 for real sprites - no wood
3358 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00DD // wood sprites

// Select log type front
3359 * 11	 02 04 3C // ID
80
00 // no more cargo (triggered by random in graphics chain)
11 // use bit 17
02
\wx8000
\wx8004

// Select log type back
3360 * 11	 02 04 40 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bit 16
02
\wx8000
\wx8004

//@@WARNING DISABLE 100

3361 * 51	 02 04 20 // ID
85
7E 40 // get random log type offset
20 \wx00FF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E 3C // get random log type offset
20 \wx00FF
\2sto 1A
20 \wx0015 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001B \w0 \w0
\wx001B

// Empty
3362 * 44	 02 04 21 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0011 // store in register
\2sto 1A
20 \wx0015 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx001C \w0 \w0
\wx001C

//@@WARNING DEFAULT

3363 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites

// Purchase
3364 * 14	 02 04 02 // ID
81 0C // check callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3365 * 39	 02 04 07 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021
\wx0021

//@@WARNING ENABLE 113

// No suitable cargo
3366 * 14	 02 04 03 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

3367 * 16	 03 04
01 49
03
07 \wx0001 // wood
13 \wx0001 // tropic wood
FF \wx0002 // purchase
\wx0003 // no suitable cargo

3368 * 150	 00 04 08 01 4A
08 "ISRR"

// Sprite layout
1A 04
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0002 // log pile
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent
11 // register

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0002 // log pile
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent
11 // register

// 02 (x) purchase
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // log pile
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent

// 03 (y) purchase
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // log pile
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent

0B 02 // use callback to determine layout

10 \w600 // set little/lots threshold

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

12 \dx00080080 // cargo types for randomisation triggers

3369 * 4	 01 04 04 04
// Empty
3370 images/newwood4.pcx 3 180 09 1 1 0 0 // 042D x, logs (dummy)
3371 images/newwood4.pcx 3 180 09 1 1 0 0 // 042E y, logs (dummy)
3372 images/newwood4.pcx 3 180 09 1 1 0 0 // 042F y, logs (dummy)
3373 images/newwood4.pcx 3 180 09 1 1 0 0 // 0430 x, logs (dummy)
// Small amount
3374 images/newwood4.pcx 3 180 09 27 53 -29 -3 // 042D x, logs type 1
3375 images/newwood4.pcx 3 233 09 31 50 -29 -1 // 042E y, logs type 1
3376 images/newwood4.pcx 196 180 09 23 33 -6 -3 // 042F x, logs type 2
3377 images/newwood4.pcx 196 233 09 25 52 -24 -6 // 0430 y, logs type 2
// Medium amount
3378 images/newwood4.pcx 61 180 09 40 61 -29 -12 // 042D x, logs type 1
3379 images/newwood4.pcx 61 233 09 39 52 -29 -9 // 042E y, logs type 1
3380 images/newwood4.pcx 254 180 09 31 45 -14 -9 // 042F x, logs type 2
3381 images/newwood4.pcx 254 233 09 31 52 -24 -6 // 0430 y, logs type 2
// Large amount
3382 images/newwood4.pcx 128 180 09 40 61 -29 -12 // 042D x, logs type 1
3383 images/newwood4.pcx 128 233 09 39 56 -29 -9 // 042E y, logs type 1
3384 images/newwood4.pcx 312 180 09 39 58 -27 -9 // 042F x, logs type 2
3385 images/newwood4.pcx 312 233 09 31 56 -28 -6 // 0430 y, logs type 2

3386 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

3387 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

3388 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

3389 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

3390 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

// No suitable cargo - use empty tile
3391 * 7	 02 04 02 // ID
00 01
\w0

// Real sprites

// Test variable 10 for real sprites
3392 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // logs sprites

// Test variable 10 for real sprites - no wood
3393 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0002 // logs sprites - empty

3394 * 15	 02 04 11 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8000
\wx8001
\wx8002
\wx8003

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3395 * 34	 02 04 20 // ID
85
7E 11 // get random log type offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
3396 * 33	 02 04 22 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0011 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

//Purchase
3397 * 22	 02 04 21 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

3398 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites

// Purchase list
3399 * 14	 02 04 05 // ID
81 0C // check callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx0021 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3400 * 39	 02 04 07 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
3401 * 14	 02 04 03 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

3402 * 16	 03 04
01 4A
03
07 \wx0001 // wood
13 \wx0001 // tropic wood
FF \wx0005 // purchase
\wx0003 // no suitable cargo
3403 * 4	 01 04 04 06
3404 images/vehicles.pcx 21 467 01 37 29 -24 -18 // 042D x, steam crawler N - empty
3405 images/vehicles.pcx 56 467 01 37 29 -4 -17 // 042E y, steam crawler N - empty
3406 images/vehicles.pcx 21 414 01 37 29 -24 -18 // 042F x, crawler crane N - empty
3407 images/vehicles.pcx 56 414 01 37 29 -4 -17 // 0430 y, crawler crane N - empty
3408 images/vehicles.pcx 21 368 01 25 28 -23 -3 // 0431 x, log loader N - empty
3409 images/vehicles.pcx 55 368 01 25 28 -10 -9 // 0432 y, log loader N - empty

3410 images/vehicles.pcx 91 467 01 40 54 -24 -18 // 042D x, steam crawler N - level 1
3411 images/vehicles.pcx 151 467 01 47 37 -12 -17 // 042E y, steam crawler N - level 1
3412 images/vehicles.pcx 91 414 01 40 54 -24 -18 // 042F x, crawler crane N - level 1
3413 images/vehicles.pcx 151 414 01 47 37 -12 -17 // 0430 y, crawler crane N - level 1
3414 images/vehicles.pcx 89 368 01 25 53 -23 -3 // 0431 x, log loader N - level 1
3415 images/vehicles.pcx 148 368 01 39 33 -15 -9 // 0432 y, log loader N - level 1

3416 images/vehicles.pcx 194 467 01 48 54 -24 -18 // 042D x, steam crawler N - level 2
3417 images/vehicles.pcx 254 467 01 47 51 -25 -17 // 042E y, steam crawler N - level 2
3418 images/vehicles.pcx 194 414 01 48 54 -24 -18 // 042F x, crawler crane N - level 2
3419 images/vehicles.pcx 254 414 01 47 51 -25 -17 // 0430 y, crawler crane N - level 2
3420 images/vehicles.pcx 187 368 01 33 53 -23 -3 // 0431 x, log loader N - level 2
3421 images/vehicles.pcx 246 368 01 39 43 -25 -9 // 0432 y, log loader N - level 2

3422 images/vehicles.pcx 311 467 01 48 54 -24 -18 // 042D x, steam crawler N - level 3
3423 images/vehicles.pcx 371 467 01 47 54 -29 -17 // 042E y, steam crawler N - level 3
3424 images/vehicles.pcx 311 414 01 48 54 -24 -18 // 042F x, crawler crane N - level 3
3425 images/vehicles.pcx 371 414 01 47 54 -29 -17 // 0430 y, crawler crane N - level 3
3426 images/vehicles.pcx 295 368 01 33 53 -23 -3 // 0431 x, log loader N - level 3
3427 images/vehicles.pcx 354 368 01 39 47 -29 -9 // 0432 y, log loader N - level 3

3428 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

3429 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

3430 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

3431 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

3432 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

3433 * 7	 02 04 01 // ID
00 01
\w0

3434 * 94	 00 04 0A 01 4B
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0002 // log loader
00 00 00 // x/y/z offset
10 10 17 // x/y/z extent
11 // register

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0002 // log loader
00 00 00 // x/y/z offset
10 10 17 // x/y/z extent
11 // register

0B 02 // use callback to determine layout

// Only allow a 1 x 1 layout
0C FE
0D FE

10 \w400 // set little/lots threshold

12 \dx00080080 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

// Prevent trains entering the tile from any direction
15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
3435 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // crane sprites

// No suitable cargo
// Test variable 10 for real sprites
3436 * 14	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0001 // crane sprites

// Sprite offset for date
3437 * 23	 02 04 08 // ID
85 FA // date station was built
00 \wxFFFF
02
\wx8000 \w0 \w01/01/1952
\wx8002 \w02/01/1952 \w01/01/1995
\wx8004

// Sprite offset for date - purchase
3438 * 23	 02 04 09 // ID
85 00 // current date
00 \wxFFFF
02
\wx8000 \w0 \w01/01/1952
\wx8002 \w02/01/1952 \w01/01/1995
\wx8004

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3439 * 34	 02 04 20 // ID
85
7E 08 // get date type offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - crane type offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
3440 * 34	 02 04 22 // ID
85
7E 08 // get date type offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - crane type offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001A \w0 \w0
\wx001A

//Purchase
3441 * 33	 02 04 21 // ID
85
7E 09 // get date type offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - crane type offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

3442 * 14	 02 04 10 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites

// For purchase list
3443 * 14	 02 04 11 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3444 * 15	 02 04 07 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
3445 * 14	 02 04 12 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

3446 * 13	 03 04
01 4B
02
07 \wx0010 // wood
FF \wx0011 // purchase list
\wx0012 // no suitable cargo

3447 * 4	 01 04 04 04
3448 images/vehicles.pcx 21 561 01 23 28 -13 -5 // 042D x, log stacker S old - empty
3449 images/vehicles.pcx 54 561 01 23 29 -25 -1 // 042E y, log stacker S old - empty
3450 images/vehicles.pcx 21 520 01 23 28 -13 -5 // 042F x, log stacker S new - empty
3451 images/vehicles.pcx 54 520 01 23 29 -25 -1 // 0430 y, log stacker S new - empty

3452 images/vehicles.pcx 88 561 01 35 45 -17 -5 // 042D x, log stacker S old - level 1
3453 images/vehicles.pcx 138 561 01 31 40 -25 -1 // 042E y, log stacker S old - level 1
3454 images/vehicles.pcx 88 520 01 35 45 -17 -5 // 042F x, log stacker S new - level 1
3455 images/vehicles.pcx 138 520 01 31 40 -25 -1 // 0430 y, log stacker S new - level 1

3456 images/vehicles.pcx 183 561 01 35 52 -24 -5 // 042D x, log stacker S old - level 2
3457 images/vehicles.pcx 240 561 01 31 40 -25 -1 // 042E y, log stacker S old - level 2
3458 images/vehicles.pcx 183 520 01 35 52 -24 -5 // 042F x, log stacker S new - level 2
3459 images/vehicles.pcx 240 520 01 31 40 -25 -1 // 0430 y, log stacker S new - level 2

3460 images/vehicles.pcx 285 561 01 35 56 -28 -5 // 042D x, log stacker S old - level 3
3461 images/vehicles.pcx 346 561 01 31 58 -25 -1 // 042E y, log stacker S old - level 3
3462 images/vehicles.pcx 285 520 01 35 56 -28 -5 // 042F x, log stacker S new - level 3
3463 images/vehicles.pcx 346 520 01 31 58 -25 -1 // 0430 y, log stacker S new - level 3

3464 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

3465 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

3466 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

3467 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

3468 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

3469 * 7	 02 04 01 // ID
00 01
\w0

3470 * 94	 00 04 0A 01 4C
08 "ISRR"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0002 // log stacker
00 00 00 // x/y/z offset
10 10 17 // x/y/z extent
11 // register

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0002 // log stacker
00 00 00 // x/y/z offset
10 10 17 // x/y/z extent
11 // register

0B 03 // use callback to determine date availability (1) and layout (2)

// Only allow a 1 x 1 layout
0C FE
0D FE

// Set little / lots threshold
10 \w400 // set little/lots threshold

12 \dx00080080 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
3471 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // log stacker sprites

// No suitable cargo
// Test variable 10 for real sprites
3472 * 14	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0001 // log stacker sprites

// Sprite offset for date
3473 * 17	 02 04 08 // ID
85 FA // date station was built
00 \wxFFFF
01
\wx8000 \w0 \w01/01/1980
\wx8002

// Sprite offset for date - purchase
3474 * 17	 02 04 09 // ID
85 00 // current date
00 \wxFFFF
01
\wx8000 \w0 \w01/01/1980
\wx8002

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3475 * 34	 02 04 20 // ID
85
7E 08 // get date type offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - stacker type offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
3476 * 34	 02 04 22 // ID
85
7E 08 // get date type offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - stacker type offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001A \w0 \w0
\wx001A

//Purchase
3477 * 33	 02 04 21 // ID
85
7E 09 // get date type offset
20 \wx7FFF
\2sto 1A
20 \wx0011 // store in register - stacker type offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Check for availability
3478 * 14	 02 04 0C // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1950 // do not allow build before 1950
\wx8001

3479 * 14	 02 04 10 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites

// For purchase list
3480 * 18	 02 04 11 // ID
81 0C // callback
00 FF
02
\wx000C 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3481 * 15	 02 04 07 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
3482 * 14	 02 04 12 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

3483 * 13	 03 04
01 4C
02
07 \wx0010 // wood
FF \wx0011 // purchase list
\wx0012 // no suitable cargo

// Processed materials
3484 * 138	 00 04 06 01 4D
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042D \wx0000 // crates
00 00 03 // x/y/z offset
10 04 0C // x/y/z extent
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042E \wx0000 // crates
00 0C 03 // x/y/z offset
10 04 0C // x/y/z extent

// 01 (y)
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000042F \wx0000 // crates
00 00 03 // x/y/z offset
04 10 0C // x/y/z extent
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000430 \wx0000 // crates
0C 00 03 // x/y/z offset
04 10 0C // x/y/z extent

0B 02 // use callback to determine layout

10 \w600 // set little/lots threshold

11 FF // pylon placement (all)

12 \dxC0003824 // cargo types for randomisation triggers

// Real sprites
3485 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00DA // crate sprites

// Real sprites - empty
3486 * 14	 02 04 24 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00D9 // crate sprites - empty

3487 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0023 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3488 * 39	 02 04 07 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024

//@@WARNING ENABLE 113

// No suitable cargo
3489 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

3490 * 64	 03 04
01 4D
13
02 \wx0005 // mail
05 \wx0005 // goods
0B \wx0005 // paper
0C \wx0005 // food
0D \wx0005 // fruit
1E \wx0005 // fish
1F \wx0005 // wool
20 \wx0005 // glass
21 \wx0005 // ceramics
2A \wx0005 // building materials
2B \wx0005 // engineering supplies
2D \wx0005 // farm supplies
30 \wx0005 // manufacturing supplies
31 \wx0005 // recyclables
32 \wx0005 // scrap metal
37 \wx0005 // sugar
38 \wx0005 // coffee
3B \wx0005 // vehicle parts
FF \wx0005 // purchase list
\wx0006 // no suitable cargo

3491 * 190	 00 04 06 01 4E
08 "ISRP"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // crates back
00 00 00 // x/y/z offset
10 04 0C // x/y/z extent
\dx8000042E \wx0000 // crates front
00 0C 00 // x/y/z offset
10 04 0C // x/y/z extent

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // crates back
00 00 00 // x/y/z offset
04 10 0C // x/y/z extent
\dx80000430 \wx0000 // crates front
0C 00 00 // x/y/z offset
04 10 0C // x/y/z extent

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // crates back
00 00 00 // x/y/z offset
10 04 0C // x/y/z extent
\dx8000042E \wx0000 // crates front
00 0C 00 // x/y/z offset
10 04 0C // x/y/z extent

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // crates back
00 00 00 // x/y/z offset
04 10 0C // x/y/z extent
\dx80000430 \wx0000 // crates front
0C 00 00 // x/y/z offset
04 10 0C // x/y/z extent

0B 02 // use callback to determine layout

10 \w600 // set little/lots threshold
12 \dxC0003824 // cargo types for randomisation triggers

11 FF // pylon placement (all)

// Real sprites
3492 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00DA // crate sprites

// Real sprites - empty
3493 * 14	 02 04 24 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00D9 // crate sprites - empty

//@@WARNING DISABLE 100

3494 * 29	 02 04 21 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0023 \w0 \w0
\wx0023

// Empty
3495 * 29	 02 04 22 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0024 \w0 \w0
\wx0024

//@@WARNING ENABLE 100

3496 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

// Purchase
3497 * 14	 02 04 08 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx0023 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3498 * 39	 02 04 07 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
3499 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

3500 * 64	 03 04
01 4E
13
02 \wx0005 // mail
05 \wx0005 // goods
0B \wx0005 // paper
0C \wx0005 // food
0D \wx0005 // fruit
1E \wx0005 // fish
1F \wx0005 // wool
20 \wx0005 // glass
21 \wx0005 // ceramics
2A \wx0005 // building materials
2B \wx0005 // engineering supplies
2D \wx0005 // farm supplies
30 \wx0005 // manufacturing supplies
31 \wx0005 // recyclables
32 \wx0005 // scrap metal
37 \wx0005 // sugar
38 \wx0005 // coffee
3B \wx0005 // vehicle parts
FF \wx0008 // purchase list
\wx0006 // no suitable cargo

3501 * 88	 00 04 08 01 4F
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // crates
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // crates
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent

0B 02 // use callback to determine layout

10 \w900 // set little/lots threshold

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

12 \dxC0003824 // cargo types for randomisation triggers

3502 * 4	 01 04 0D 02
// Empty
3503 images/newcrates.pcx 9 197 01 1 1 0 0 // x level 0
3504 images/newcrates.pcx 9 197 01 1 1 0 0 // y level 0

// Random set 1
3505 images/newcrates.pcx 9 197 01 41 61 -29 -13 // x level 1
3506 images/newcrates.pcx 75 197 01 41 61 -29 -13 // y level 1
3507 images/newcrates.pcx 9 243 01 41 61 -29 -13 // x level 2
3508 images/newcrates.pcx 75 243 01 41 61 -29 -13 // y level 2
3509 images/newcrates.pcx 9 290 01 41 61 -29 -13 // x level 3
3510 images/newcrates.pcx 75 290 01 41 61 -29 -13 // y level 4

// Random set 2
3511 images/newcrates.pcx 141 197 01 41 61 -29 -13 // x level 1
3512 images/newcrates.pcx 207 197 01 41 61 -29 -13 // y level 1
3513 images/newcrates.pcx 141 243 01 41 61 -29 -13 // x level 2
3514 images/newcrates.pcx 207 243 01 41 61 -29 -13 // y level 2
3515 images/newcrates.pcx 141 290 01 41 61 -29 -13 // x level 3
3516 images/newcrates.pcx 207 290 01 41 61 -29 -13 // y level 4

// Random set 3
3517 images/newcrates.pcx 273 197 01 41 61 -29 -13 // x level 1
3518 images/newcrates.pcx 339 197 01 41 61 -29 -13 // y level 1
3519 images/newcrates.pcx 273 243 01 41 61 -29 -13 // x level 2
3520 images/newcrates.pcx 339 243 01 41 61 -29 -13 // y level 2
3521 images/newcrates.pcx 273 290 01 41 61 -29 -13 // x level 3
3522 images/newcrates.pcx 339 290 01 41 61 -29 -13 // y level 4

// Random set 4
3523 images/newcrates.pcx 405 197 01 41 61 -29 -13 // x level 1
3524 images/newcrates.pcx 471 197 01 41 61 -29 -13 // y level 1
3525 images/newcrates.pcx 405 243 01 41 61 -29 -13 // x level 2
3526 images/newcrates.pcx 471 243 01 41 61 -29 -13 // y level 2
3527 images/newcrates.pcx 405 290 01 41 61 -29 -13 // x level 3
3528 images/newcrates.pcx 471 290 01 41 61 -29 -13 // y level 4

3529 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

3530 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

3531 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

3532 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

3533 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

3534 * 35	 02 04 14 // ID
0E 01
\w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6 \w6
\w6

3535 * 35	 02 04 15 // ID
0E 01
\w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6
\w6

3536 * 35	 02 04 16 // ID
0E 01
\w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6
\w6

3537 * 35	 02 04 17 // ID
0E 01
\w0 \w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5
\w6

3538 * 15	 02 04 01 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0014
\wx0015
\wx0016
\wx0017

3539 * 35	 02 04 18 // ID
0E 01
\w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9 \w9
\w9

3540 * 35	 02 04 19 // ID
0E 01
\w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9
\w9

3541 * 35	 02 04 1A // ID
0E 01
\w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9
\w9

3542 * 35	 02 04 1B // ID
0E 01
\w0 \w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8
\w9

3543 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0018
\wx0019
\wx001A
\wx001B

3544 * 35	 02 04 1C // ID
0E 01
\w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12 \w12
\w12

3545 * 35	 02 04 1D // ID
0E 01
\w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12
\w12

3546 * 35	 02 04 1E // ID
0E 01
\w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12
\w12

3547 * 35	 02 04 1F // ID
0E 01
\w0 \w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11
\w12

3548 * 15	 02 04 03 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx001C
\wx001D
\wx001E
\wx001F

3549 * 15	 02 04 04 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx0000
\wx0001
\wx0002
\wx0003

3550 * 7	 02 04 08 // ID
00 01
\w0

// Test variable 10 for real sprites
3551 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0004 // crate sprites

// Test variable 10 for real sprites - empty
3552 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0008 // crate sprites

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3553 * 23	 02 04 20 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
3554 * 23	 02 04 22 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

// Purchase
3555 * 18	 02 04 21 // ID
81
1A // all bits on
20 00
\2sto 1A
00 10 // store in register - ground sprite offset
01
\wx001B 00 00
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

3556 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites

// Purchase
3557 * 14	 02 04 07 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3558 * 39	 02 04 09 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
3559 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

3560 * 64	 03 04
01 4F
13
02 \wx0005 // mail
05 \wx0005 // goods
0B \wx0005 // paper
0C \wx0005 // food
0D \wx0005 // fruit
1E \wx0005 // fish
1F \wx0005 // wool
20 \wx0005 // glass
21 \wx0005 // ceramics
2A \wx0005 // building materials
2B \wx0005 // engineering supplies
2D \wx0005 // farm supplies
30 \wx0005 // manufacturing supplies
31 \wx0005 // recyclables
32 \wx0005 // scrap metal
37 \wx0005 // sugar
38 \wx0005 // coffee
3B \wx0005 // vehicle parts
FF \wx0007 // purchase list
\wx0006 // no suitable cargo
3561 * 4	 01 04 01 0A
3562 images/vehicles.pcx 37 209 01 14 11 -3 -8 // 042D x, forklift
3563 images/vehicles.pcx 21 209 01 14 11 -6 -8 // 042E y, forklift
3564 images/vehicles.pcx 84 209 01 7 8 -3 -3 // 042F x, crate light
3565 images/vehicles.pcx 95 209 01 7 8 -3 -3 // 0430 y, crate dark
3566 images/vehicles.pcx 58 209 01 3 3 -1 1 // 0431 x, forks
3567 images/vehicles.pcx 52 209 01 3 3 0 1 // 0432 y, forks
3568 images/vehicles.pcx 107 209 01 15 24 -11 -5 // 0433 x, crates
3569 images/vehicles.pcx 135 209 01 19 28 -19 -5 // 0434 y, crates
3570 images/vehicles.pcx 66 209 01 16 5 -2 -9 // 0435 forklift turn light crate
3571 images/vehicles.pcx 75 209 01 16 5 -2 -9 // 0436 forklift turn dark crate

3572 * 7	 02 04 00 // ID
00 01
\w0

3573 * 430	 00 04 0B 01 50
08 "ISRP"

// Sprite layout
1A 06
// 00 (x) - move forward/lift/back
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000433 \wx0001 // crates
01 01 00 // x/y/z offset
07 07 08 // x/y/z extent
01 // register - show
\dx8000042F \wx0031 // crate
02 01 00 // x/y/z offset
02 02 04 // x/y/z extent
01 05 06 07 // registers - show, x, y, z
\dx80000431 \wx0031 // forks
04 01 00 // x/y/z offset
02 02 01 // x/y/z extent
02 08 09 0A // registers - show, x, y, z
\dx8000042D \wx0010 // forklift
04 03 00 // x/y/z offset
02 04 0C // x/y/z extent
08 09 // registers - x, y

// 01 (y) - move forward/lift/back
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000434 \wx0001 // crates
01 01 00 // x/y/z offset
0B 05 08 // x/y/z extent
01 // register - show
\dx80000430 \wx0031 // crate
01 02 00 // x/y/z offset
02 02 04 // x/y/z extent
01 06 05 07 // registers - show, x, y, z
\dx80000432 \wx0031 // forks
01 04 00 // x/y/z offset
02 02 01 // x/y/z extent
02 09 08 0A // registers - show, x, y, z
\dx8000042E \wx0010 // forklift
03 04 00 // x/y/z offset
04 02 0C // x/y/z extent
09 08 // registers - x, y

// 02 (x) - turn
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000433 \wx0001 // crates
01 01 00 // x/y/z offset
07 07 08 // x/y/z extent
01 // register - show
\dx80000435 \wx0010 // forklift
08 06 00 // x/y/z offset
04 04 0C // x/y/z extent
08 09 // registers - x, y

// 03 (y) - turn
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000434 \wx0001 // crates
01 01 00 // x/y/z offset
0B 05 08 // x/y/z extent
01 // register - show
\dx80000436 \wx0010 // forklift
06 08 00 // x/y/z offset
04 04 0C // x/y/z extent
09 08 // registers - x, y

// 04 (x) - move forward/lower/back
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000433 \wx0001 // crates
01 01 00 // x/y/z offset
07 07 08 // x/y/z extent
01 // register - show
\dx8000042F \wx0031 // crate
02 01 00 // x/y/z offset
02 02 04 // x/y/z extent
01 05 06 07 // registers - show, x, y, z
\dx80000432 \wx0031 // forks
02 03 00 // x/y/z offset
02 02 01 // x/y/z extent
02 08 09 0A // registers - show, x, y, z
\dx8000042E \wx0010 // forklift
04 03 00 // x/y/z offset
04 02 0C // x/y/z extent
08 09 // registers - x, y

// 05 (y) - move forward/lower/back
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000434 \wx0001 // crates
01 01 00 // x/y/z offset
0B 05 08 // x/y/z extent
01 // register - show
\dx80000430 \wx0031 // crate
01 02 00 // x/y/z offset
02 02 04 // x/y/z extent
01 06 05 07 // registers - show, x, y, z
\dx80000431 \wx0031 // forks
03 02 00 // x/y/z offset
02 02 01 // x/y/z extent
02 09 08 0A // registers - show, x, y, z
\dx8000042D \wx0010 // forklift
03 04 00 // x/y/z offset
02 04 0C // x/y/z extent
09 08 // registers - x, y

0B 07 // use callback to determine date availability (1), layout (2) and animation frame (4)

// Only allow a 1 x 1 layout
0C FE
0D FE

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

16 \wx0157 // animation info 88 frames - looping
17 03 // animation speed 2^3 ticks per frame
18 \wx0003 // animation triggers - build (1), cargo arrives (2)

// Test variable 10 for real sprites
3574 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // forklift sprites

// Calculate a_frame for reverse movement
3575 * 14	 02 04 50 // ID
81 1A // all bits on
20 \b87 // max_frame
\2-
4A // animation frame
00 FF
00 // return a_frame = max_frame - frame
\wx8000

// Set a_frame to frame for forward movement
3576 * 10	 02 04 51 // ID
81 4A // animation frame
00 FF
00 // return a_frame = frame
\wx8000

// Select movement direction
3577 * 14	 02 04 52 // ID
81 4A // animation frame
00 FF
01
\wx0051 \b0 \b43 // frames 0 to 43
\wx0050 // frames 44 to max

3578 * 15	 02 04 7A // ID
81
1A // all bits on
20 \b30 // val = 30
\2-
7D 21 // read register for a_frame
00 FF
00
\wx8000

3579 * 15	 02 04 7B // ID
81
7D 21 // read register for a_frame
20 FF
\2-
1A // all bits on
00 \b35 // val = 35
00
\wx8000

3580 * 15	 02 04 7C // ID
81
1A // all bits on
20 \b9 // val = 9
\2-
7D 21 // read register for a_frame
00 FF
00
\wx8000

3581 * 15	 02 04 7D // ID
81
7D 21 // read register for a_frame
20 FF
\2-
1A // all bits on
00 \b16 // val = 16
00
\wx8000

// Offset for movement x
3582 * 43	 02 04 70 // ID
81
7E 52 // a_frame 0 to 43
20 FF
\2sto 1A
00 21 // store in register to prevent calculating a_frame multiple times
\b7
\wx8007 \b00 \b21
\wx8003 \b22 \b23
\wx8002 \b24 \b24
\wx8001 \b25 \b25
\wx007A \b27 \b29 // 03 to 01
\wx007B \b36 \b42 // 01 to 07
\wx8007 \b43 \b43
\wx8000

// Offset for movement y
3583 * 39	 02 04 71 // ID
81
7D 21 // read register for a_frame
00 FF
\b7
\wx8008 \b00 \b01
\wx007C \b02 \b08 // 08 to 01
\wx007D \b17 \b21 // 01 to 05
\wx8003 \b22 \b23
\wx8002 \b24 \b24
\wx8001 \b25 \b25
\wx8003 \b27 \b43
\wx8000

// Offset for forks z
3584 * 31	 02 04 72 // ID
81
7D 21 // read register for a_frame
00 FF
\b5
\wx8003 \b0 \b2
\wx8002 \b3 \b3
\wx8001 \b4 \b4
\wx8004 \b37 \b38
\wx8003 \b39 \b43
\wx8000

// Show/hide flag for forks
3585 * 19	 02 04 73 // ID
81
7D 21 // read register for a_frame
00 FF
\b2
\wx8001 \b0 \b7
\wx8001 \b37 \b43
\wx8000

// Offset for crate position x
3586 * 27	 02 04 74 // ID
81
7D 21 // read register for a_frame
00 FF
\b4
\wx8009 \b00 \b26
\wx8003 \b27 \b27
\wx8002 \b28 \b28
\wx8001 \b29 \b29
\wx8000

// Offset for crate position y
3587 * 31	 02 04 75 // ID
81
7D 21 // read register for a_frame
00 FF
\b5
\wx8001 \b17 \b17
\wx8002 \b18 \b18
\wx8003 \b19 \b19
\wx8004 \b20 \b20
\wx8005 \b21 \b43
\wx8000

// Offset for crate position z
3588 * 43	 02 04 76 // ID
81
7D 21 // read register for a_frame
00 FF
\b8
\wx8001 \b12 \b12
\wx8002 \b13 \b13
\wx8003 \b14 \b26
\wx8004 \b27 \b27
\wx8005 \b28 \b28
\wx8006 \b29 \b32
\wx8005 \b33 \b33
\wx8004 \b34 \b43
\wx8000

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Set registers
3589 * 100	 02 04 5A // ID
85
// forklift
7E 70 // get offset for movement - x
20 \wx7FFF
\2sto 1A
20 \wx0008 // store in register - x offset
\2rst
7E 71 // get offset for movement - y
20 \wx7FFF
\2sto 1A
20 \wx0009 // store in register - y offset
\2rst
// forks
7E 73 // get show/hide flag
20 \wx7FFF
\2sto 1A
20 \wx0002 // store in register - show/hide flag
\2rst
7E 72 // get offset for movement -z
20 \wx7FFF
\2sto 1A
20 \wx000A // store in register - z offset
\2rst
// crate
7E 74 // get offset for movement - x
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - x offset
\2rst
7E 75 // get offset for movement - y
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - y offset
\2rst
7E 76 // get offset for movement -z
20 \wx7FFF
\2sto 1A
20 \wx0007 // store in register - z offset
\2rst
// ground
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx8000 \w0 \w0
\wx8000

3590 * 28	 02 04 53 // ID
85
1A // all bits on
20 \w1 // val = 1
\2sto 1A
20 \wx0001 // store in register - show/hide crates flag
\2rst
7E 5A // set registers
00 \w0
01
\wx001B \w0 \w0
\wx001B

3591 * 28	 02 04 59 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0001 // store in register - show/hide crates flag
\2rst
7E 5A // set registers
00 \w0
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

3592 * 18	 02 04 54 // ID
81
4A // animation frame
00 FF
02
\wx0059 \b44 \b44 // empty
\wx0059 \b0 \b0 // empty
\wx0053 // continue

3593 * 24	 02 04 58 // ID
85
7D 20 // read register for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
00 \wxFFFF
01
\wx0054 \w0 \w50 // if not much cargo
\wx0053 // continue

// Animation control - maybe start animation
3594 * 14	 02 04 56 // ID
81 10 // extra callback info - random bits
00 03 // use low bits (different for each tile)
01
\wx80FE 00 02 // 75% chance of start
\wx80FD // do nothing

// Animation start/stop control
3595 * 18	 02 04 57 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx8001 00 00 // build - start
\wx0056 01 01 // cargo arrives - maybe start
\wx80FD // do nothing

// Animation frame
3596 * 18	 02 04 55 // ID
81
4A // animation frame
00 FF
02
\wx80FF \b44 \b44 // stop
\wx80FF \b0 \b0 // stop
\wx80FE // continue

3597 * 24	 02 04 5D // ID
85
7D 20 // read register for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
00 \wxFFFF
01
\wx0055 \w0 \w50 // if not much cargo
\wx80FE // continue

// Callback 14
3598 * 19	 02 04 10 // ID
81
7E 52 // a_frame 0 to 43
00 FF
02
\wx8002 \b22 \b26
\wx8004 \b27 \b43
\wx8000

// Check for availability
3599 * 14	 02 04 0C // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1940 // do not allow build before 1940
\wx8001

// Store cargo id in register 0x20 and check for callbacks 0x14, 0x140 and 0x141

// (ID, cargo id)
3600 * 39	 02 04 1D 85 1A 20 02 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // mail
3601 * 39	 02 04 1E 85 1A 20 05 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // goods
3602 * 39	 02 04 1F 85 1A 20 0B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // paper
3603 * 39	 02 04 20 85 1A 20 0C 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // food
3604 * 39	 02 04 21 85 1A 20 0D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // fruit
3605 * 39	 02 04 22 85 1A 20 1E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // fish
3606 * 39	 02 04 23 85 1A 20 1F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // wool
3607 * 39	 02 04 24 85 1A 20 20 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // glass
3608 * 39	 02 04 25 85 1A 20 21 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // ceramics
3609 * 39	 02 04 26 85 1A 20 2A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // building materials
3610 * 39	 02 04 27 85 1A 20 2B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // engineering supplies
3611 * 39	 02 04 28 85 1A 20 2D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // farm supplies
3612 * 39	 02 04 29 85 1A 20 30 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // manufacturing supplies
3613 * 39	 02 04 2A 85 1A 20 31 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // recyclables
3614 * 39	 02 04 2B 85 1A 20 32 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // scrap metal
3615 * 39	 02 04 2C 85 1A 20 37 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // sugar
3616 * 39	 02 04 2D 85 1A 20 38 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // coffee
3617 * 39	 02 04 2E 85 1A 20 3B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // vehicle parts

// Empty
3618 * 29	 02 04 06 // ID
85 0C // callback
00 \wxFFFF
03
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0057 \wx0140 \wx0140 // animation control
\wx0055 \wx0141 \wx0141 // animation frame - stop
\wx0054 // real sprites

// For purchase list
3619 * 18	 02 04 02 // ID
81 0C // callback
00 FF
02
\wx000C 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx0053 // real sprites

3620 * 64	 03 04
01 50
13
02 \wx001D // mail
05 \wx001E // goods
0B \wx001F // paper
0C \wx0020 // food
0D \wx0021 // fruit
1E \wx0022 // fish
1F \wx0023 // wool
20 \wx0024 // glass
21 \wx0025 // ceramics
2A \wx0026 // building materials
2B \wx0027 // engineering supplies
2D \wx0028 // farm supplies
30 \wx0029 // manufacturing supplies
31 \wx002A // recyclables
32 \wx002B // scrap metal
37 \wx002C // sugar
38 \wx002D // coffee
3B \wx002E // vehicle parts
FF \wx0002 // purchase list
\wx0006 // no suitable cargo
3621 * 139	 00 04 07 01 51
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // platform back
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842D \wx0002 // forklift
05 01 03 // x/y/z offset
06 02 09 // x/y/z extent
08 // register
\dx80000431 \wx0003 // cargo
0A 01 80 // x/y/z offset
03 06 // registers
\dx8000042E \wx0040 // platform front
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 01 (y)
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // platform back
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000842F \wx0002 // forklift
01 05 03 // x/y/z offset
02 06 09 // x/y/z extent
08 // register
\dx80000432 \wx0003 // cargo
00 01 80 // x/y/z offset
03 06 // registers
\dx80000430 \wx0040 // platform front
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

0B 02 // use callback for sprite layout

// Only allow a 1 x 1 layout
0C FE
0D FE

11 FF // pylon placement (all)

12 \dxC4313C2C // cargo types for randomisation triggers

// Real sprites

// Test variable 10 for real sprites
3622 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00D1 // forklift sprites

// Random cargo thresholds
3623 * 15	 02 04 08 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx8000
\wx8019
\wx8032
\wx804B

// Cargo show/hide
3624 * 30	 02 04 10 // ID
85
7D 20 // read register for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
20 \wxFFFF
\2+
7E 08 // add random value
00 \wx00FF
01
\wx8000 \w0 \w100 // hide cargo
\wx8001 // show cargo

// Random crate variety
3625 * 11	 02 04 11 // ID
80
00 // no more cargo (triggered by random in graphics chain)
11 // use bit 17
02
\wx8002
\wx8004

// Random barrel variety
3626 * 11	 02 04 05 // ID
80
00 // no more cargo (triggered by random in graphics chain)
11 // use bit 17
02
\wx8006
\wx8008

//Cargo type
3627 * 42	 02 04 09 // ID
85
7D 20 // read register for this cargo type
00 \wxFFFF
05
\wx8000 \wx000B \wx000B // paper
\wx0005 \wx0003 \wx0003 // oil - barrel
\wx0005 \wx0010 \wx001A // rubber/petrol - barrel
\wx0005 \wx0024 \wx0029 // fertiliser to alcohol - barrel
\wx0005 \wx002F \wx002F // milk - barrel
\wx0011 // crate

// Random forklift variety
3628 * 11	 02 04 07 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3629 * 45	 02 04 12 // ID
85
7E 07 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst
7E 09 // get offset for cargo type
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 10 // get show/hide flag for cargo
20 \wx00FF
\2sto 1A
00 \wx0003 // store in register
01
\wx001B \w0 \w0
\wx001B

// No suitable cargo
3630 * 38	 02 04 13 // ID
85
7E 07 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst 1A // all bits on
20 \w0
\2sto 1A
20 \wx0006 // store in register
\2sto 1A
00 \wx0003 // store in register - hide cargo
01
\wx001B \w0 \w0
\wx001B

// Purchase
3631 * 42	 02 04 14 // ID
85
1A // all bits on
20 \w1 // offset for cc forklift
\2sto 1A
20 \wx0008 // store in register
\2rst 1A // all bits on
20 \w2 // offset for crate
\2sto 1A
20 \wx0006 // store in register
\2rst 1A // all bits on
20 \w1 // show cargo
\2sto 1A
00 \wx0003 // store in register
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Check for callback

// Store cargo id in register 0x20 and check for callback 0x14

// (ID, cargo id)
3632 * 27	 02 04 1D 85 1A 20 02 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // mail
3633 * 27	 02 04 1E 85 1A 20 03 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // oil
3634 * 27	 02 04 1F 85 1A 20 05 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // goods
3635 * 27	 02 04 20 85 1A 20 0A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // valuables
3636 * 27	 02 04 21 85 1A 20 0B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // paper
3637 * 27	 02 04 22 85 1A 20 0C 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // food
3638 * 27	 02 04 23 85 1A 20 0D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // fruit
3639 * 27	 02 04 24 85 1A 20 10 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // rubber
3640 * 27	 02 04 25 85 1A 20 14 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // gold
3641 * 27	 02 04 26 85 1A 20 15 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // diamonds
3642 * 27	 02 04 27 85 1A 20 1A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // petrol
3643 * 27	 02 04 28 85 1A 20 1E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // fish
3644 * 27	 02 04 29 85 1A 20 1F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // wool
3645 * 27	 02 04 2A 85 1A 20 20 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // glass
3646 * 27	 02 04 2B 85 1A 20 21 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // ceramics
3647 * 27	 02 04 2C 85 1A 20 24 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // fertiliser
3648 * 27	 02 04 2D 85 1A 20 25 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // dyes
3649 * 27	 02 04 2E 85 1A 20 26 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // refined products
3650 * 27	 02 04 2F 85 1A 20 27 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // plastic
3651 * 27	 02 04 30 85 1A 20 29 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // alcohol
3652 * 27	 02 04 31 85 1A 20 2A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // building materials
3653 * 27	 02 04 32 85 1A 20 2B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // engineering supplies
3654 * 27	 02 04 33 85 1A 20 2D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // farm supplies
3655 * 27	 02 04 34 85 1A 20 2E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // fruit (and veg)
3656 * 27	 02 04 35 85 1A 20 2F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // milk
3657 * 27	 02 04 36 85 1A 20 30 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // manufacturing supplies
3658 * 27	 02 04 37 85 1A 20 31 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // recyclables
3659 * 27	 02 04 38 85 1A 20 32 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // scrap metal
3660 * 27	 02 04 39 85 1A 20 37 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // sugar
3661 * 27	 02 04 3A 85 1A 20 38 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // coffee
3662 * 27	 02 04 3B 85 1A 20 3B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // vehicle parts

// Check for availability
3663 * 14	 02 04 0C // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1935 // do not allow build before 1935
\wx8001

// Purchase list
3664 * 18	 02 04 02 // ID
81 0C // callback
00 FF
02
\wx000C 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx0014 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3665 * 23	 02 04 0B // ID
80
02 // no more cargo
11 // trigger bits 17 to 19
08
\wx0013
\wx0013
\wx0013
\wx0013
\wx0013
\wx0013
\wx0013
\wx0013

//@@WARNING ENABLE 113

// No suitable cargo
3666 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000B // real sprites

3667 * 103	 03 04
01 51
20
02 \wx001D // mail
03 \wx001E // oil
05 \wx001F // goods
0A \wx0020 // valuables
0B \wx0021 // paper
0C \wx0022 // food
0D \wx0023 // fruit
10 \wx0024 // rubber
14 \wx0025 // gold
15 \wx0026 // diamonds
1A \wx0027 // petrol
1E \wx0028 // fish
1F \wx0029 // wool
20 \wx002A // glass
21 \wx002B // ceramics
24 \wx002C // fertiliser
25 \wx002D // dyes
26 \wx002E // refined products
27 \wx002F // plastic
29 \wx0030 // alcohol
2A \wx0031 // building materials
2B \wx0032 // engineering supplies
2D \wx0033 // farm supplies
2E \wx0034 // fruit (and veg)
2F \wx0035 // milk
30 \wx0036 // manufacturing supplies
31 \wx0037 // recyclables
32 \wx0038 // scrap metal
37 \wx0039 // sugar
38 \wx003A // coffee
3B \wx003B // vehicle parts
FF \wx0002 // purchase list
\wx0006 // no suitable cargo

3668 * 185	 00 04 07 01 52
08 "ISRP"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0002 // forklift
05 01 00 // x/y/z offset
06 02 09 // x/y/z extent
08 // register
\dx80000431 \wx0003 // cargo
0A 01 80 // x/y/z offset
03 06 // registers

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0002 // forklift
01 05 00 // x/y/z offset
02 06 09 // x/y/z extent
08 // register
\dx80000432 \wx0003 // cargo
00 01 80 // x/y/z offset
03 06 // registers

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842E \wx0000 // forklift
05 01 00 // x/y/z offset
06 02 09 // x/y/z extent
\dx80000433 \wx0000 // cargo
0A 01 80 // x/y/z offset

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008430 \wx0000 // forklift
01 05 00 // x/y/z offset
02 06 09 // x/y/z extent
\dx80000434 \wx0000 // cargo
00 01 80 // x/y/z offset

0B 02 // use callback for sprite layout

// Only allow a 1 x 1 layout
0C FE
0D FE

11 FF // pylon placement (all)

12 \dxC4313C2C // cargo types for randomisation triggers

// Real sprites

// Test variable 10 for real sprites
3669 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00D1 // forklift sprites

//@@WARNING DISABLE 100

3670 * 62	 02 04 12 // ID
85
7E 07 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst
7E 09 // get offset for cargo type
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 10 // get show/hide flag for cargo
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// No suitable cargo
3671 * 55	 02 04 13 // ID
85
7E 07 // get random offset for forklift
20 \wx00FF
\2sto 1A
20 \wx0008 // store in register
\2rst 1A // all bits on
20 \w0
\2sto 1A
20 \wx0006 // store in register
\2sto 1A
20 \wx0003 // store in register - hide cargo
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

// Check for callback

// Store cargo id in register 0x20 and check for callback 0x14

// (ID, cargo id)
3672 * 27	 02 04 1D 85 1A 20 02 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // mail
3673 * 27	 02 04 1E 85 1A 20 03 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // oil
3674 * 27	 02 04 1F 85 1A 20 05 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // goods
3675 * 27	 02 04 20 85 1A 20 0A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // valuables
3676 * 27	 02 04 21 85 1A 20 0B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // paper
3677 * 27	 02 04 22 85 1A 20 0C 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // food
3678 * 27	 02 04 23 85 1A 20 0D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // fruit
3679 * 27	 02 04 24 85 1A 20 10 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // rubber
3680 * 27	 02 04 25 85 1A 20 14 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // gold
3681 * 27	 02 04 26 85 1A 20 15 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // diamonds
3682 * 27	 02 04 27 85 1A 20 1A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // petrol
3683 * 27	 02 04 28 85 1A 20 1E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // fish
3684 * 27	 02 04 29 85 1A 20 1F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // wool
3685 * 27	 02 04 2A 85 1A 20 20 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // glass
3686 * 27	 02 04 2B 85 1A 20 21 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // ceramics
3687 * 27	 02 04 2C 85 1A 20 24 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // fertiliser
3688 * 27	 02 04 2D 85 1A 20 25 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // dyes
3689 * 27	 02 04 2E 85 1A 20 26 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // refined products
3690 * 27	 02 04 2F 85 1A 20 27 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // plastic
3691 * 27	 02 04 30 85 1A 20 29 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // alcohol
3692 * 27	 02 04 31 85 1A 20 2A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // building materials
3693 * 27	 02 04 32 85 1A 20 2B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // engineering supplies
3694 * 27	 02 04 33 85 1A 20 2D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // farm supplies
3695 * 27	 02 04 34 85 1A 20 2E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // fruit (and veg)
3696 * 27	 02 04 35 85 1A 20 2F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // milk
3697 * 27	 02 04 36 85 1A 20 30 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // manufacturing supplies
3698 * 27	 02 04 37 85 1A 20 31 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // recyclables
3699 * 27	 02 04 38 85 1A 20 32 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // scrap metal
3700 * 27	 02 04 39 85 1A 20 37 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // sugar
3701 * 27	 02 04 3A 85 1A 20 38 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // coffee
3702 * 27	 02 04 3B 85 1A 20 3B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 01 \wx8000 \wx0014 \wx0014 \wx0012 // vehicle parts

// Check for availability
3703 * 14	 02 04 0C // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1935 // do not allow build before 1935
\wx8001

// Purchase list
3704 * 18	 02 04 02 // ID
81 0C // callback
00 FF
02
\wx000C 13 13 // date availability
\wx8002 14 14 // sprite layout
\wx001B // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3705 * 23	 02 04 0B // ID
80
02 // no more cargo
11 // trigger bits 17 to 19
08
\wx0013
\wx0013
\wx0013
\wx0013
\wx0013
\wx0013
\wx0013
\wx0013

//@@WARNING ENABLE 113

// No suitable cargo
3706 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000B // real sprites

3707 * 103	 03 04
01 52
20
02 \wx001D // mail
03 \wx001E // oil
05 \wx001F // goods
0A \wx0020 // valuables
0B \wx0021 // paper
0C \wx0022 // food
0D \wx0023 // fruit
10 \wx0024 // rubber
14 \wx0025 // gold
15 \wx0026 // diamonds
1A \wx0027 // petrol
1E \wx0028 // fish
1F \wx0029 // wool
20 \wx002A // glass
21 \wx002B // ceramics
24 \wx002C // fertiliser
25 \wx002D // dyes
26 \wx002E // refined products
27 \wx002F // plastic
29 \wx0030 // alcohol
2A \wx0031 // building materials
2B \wx0032 // engineering supplies
2D \wx0033 // farm supplies
2E \wx0034 // fruit (and veg)
2F \wx0035 // milk
30 \wx0036 // manufacturing supplies
31 \wx0037 // recyclables
32 \wx0038 // scrap metal
37 \wx0039 // sugar
38 \wx003A // coffee
3B \wx003B // vehicle parts
FF \wx0002 // purchase list
\wx0006 // no suitable cargo
3708 * 138	 00 04 06 01 53
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842D \wx0000 // containers
00 00 03 // x/y/z offset
10 04 11 // x/y/z extent
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842E \wx0000 // containers
00 0C 03 // x/y/z offset
10 04 11 // x/y/z extent

// 01 (y)
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000842F \wx0000 // containers
00 00 03 // x/y/z offset
04 10 11 // x/y/z extent
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80008430 \wx0000 // containers
0C 00 03 // x/y/z offset
04 10 11 // x/y/z extent

0B 03 // use callback to determine date availability (1) and layout (2)

10 \w600 // set little/lots threshold

11 FF // pylon placement (all)

12 \dxC0003824 // cargo types for randomisation triggers

// Real sprites
3709 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00DC // container sprites

// Real sprites - empty
3710 * 14	 02 04 24 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00DB // container sprites - empty

// Check for availability
3711 * 14	 02 04 07 // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1960 // do not allow build before 1960
\wx8001

3712 * 18	 02 04 05 // ID
81 0C // callback
00 FF
02
\wx0007 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx0023 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3713 * 39	 02 04 09 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024

//@@WARNING ENABLE 113

// No suitable cargo
3714 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

3715 * 70	 03 04
01 53
15
02 \wx0005 // mail
05 \wx0005 // goods
0B \wx0005 // paper
0C \wx0005 // food
0D \wx0005 // fruit
1E \wx0005 // fish
1F \wx0005 // wool
20 \wx0005 // glass
21 \wx0005 // ceramics
22 \wx0005 // bricks
23 \wx0005 // vehicles
2A \wx0005 // building materials
2B \wx0005 // engineering supplies
2D \wx0005 // farm supplies
30 \wx0005 // manufacturing supplies
31 \wx0005 // recyclables
32 \wx0005 // scrap metal
37 \wx0005 // sugar
38 \wx0005 // coffee
3B \wx0005 // vehicle parts
FF \wx0005 // purchase list
\wx0006 // no suitable cargo

3716 * 190	 00 04 06 01 54
08 "ISRP"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000 // containers back
00 00 00 // x/y/z offset
10 04 11 // x/y/z extent
\dx8000842E \wx0000 // containers front
00 0C 00 // x/y/z offset
10 04 11 // x/y/z extent

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0000 // containers back
00 00 00 // x/y/z offset
04 10 11 // x/y/z extent
\dx80008430 \wx0000 // containers front
0C 00 00 // x/y/z offset
04 10 11 // x/y/z extent

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000 // containers back
00 00 00 // x/y/z offset
10 04 11 // x/y/z extent
\dx8000842E \wx0000 // containers front
00 0C 00 // x/y/z offset
10 04 11 // x/y/z extent

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842F \wx0000 // containers back
00 00 00 // x/y/z offset
04 10 11 // x/y/z extent
\dx80008430 \wx0000 // containers front
0C 00 00 // x/y/z offset
04 10 11 // x/y/z extent

0B 03 // use callback to determine date availability (1) and layout (2)

10 \w600 // set little/lots threshold
12 \dxC0003824 // cargo types for randomisation triggers

11 FF // pylon placement (all)

// Real sprites
3717 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00DC // container sprites

// Real sprites - empty
3718 * 14	 02 04 24 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00DB // container sprites - empty

//@@WARNING DISABLE 100

3719 * 29	 02 04 21 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0023 \w0 \w0
\wx0023

// Empty
3720 * 29	 02 04 22 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0024 \w0 \w0
\wx0024

//@@WARNING ENABLE 100

// Check for availability
3721 * 14	 02 04 07 // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1960 // do not allow build before 1960
\wx8001

3722 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

// Purchase
3723 * 18	 02 04 08 // ID
81 0C // callback
00 FF
02
\wx0007 13 13 // date availability
\wx8002 14 14 // sprite layout
\wx0023 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3724 * 39	 02 04 09 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
3725 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

3726 * 70	 03 04
01 54
15
02 \wx0005 // mail
05 \wx0005 // goods
0B \wx0005 // paper
0C \wx0005 // food
0D \wx0005 // fruit
1E \wx0005 // fish
1F \wx0005 // wool
20 \wx0005 // glass
21 \wx0005 // ceramics
22 \wx0005 // bricks
23 \wx0005 // vehicles
2A \wx0005 // building materials
2B \wx0005 // engineering supplies
2D \wx0005 // farm supplies
30 \wx0005 // manufacturing supplies
31 \wx0005 // recyclables
32 \wx0005 // scrap metal
37 \wx0005 // sugar
38 \wx0005 // coffee
3B \wx0005 // vehicle parts
FF \wx0008 // purchase list
\wx0006 // no suitable cargo

3727 * 230	 00 04 0C 01 55
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
46
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0013 // crane back
00 00 00 // x/y/z offset
08 04 19 // x/y/z extent
01 05 06 07 // registers - show, sprite offset, x, y
\dx8000842D \wx0042 // container
00 05 00 // x/y/z offset
10 06 10 // x/y/z extent
04 // registers - sprite offset
05 // value for variable 10
\dx8000843B \wx0013 // crane front
00 0C 00 // x/y/z offset
08 04 19 // x/y/z extent
01 05 06 07 // registers - show, sprite offset, x, y
\dx80000449 \wx0013 // crane top
00 00 19 // x/y/z offset
08 10 03 // x/y/z extent
01 05 06 07 // registers - show, sprite offset, x, y
\dx80000457 \wx0013 // crane hoist
00 02 19 // x/y/z offset
08 06 0A // x/y/z extent
01 05 06 08 // registers - show, sprite offset, x, y

// 01 (y)
46
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000434 \wx0013 // crane back
00 00 00 // x/y/z offset
04 08 19 // x/y/z extent
01 05 07 06 // registers - show, sprite offset, x, y
\dx8000842E \wx0042 // container
05 00 00 // x/y/z offset
06 10 10 // x/y/z extent
04 // registers - sprite offset
05 // value for variable 10
\dx80008442 \wx0013 // crane front
0C 00 00 // x/y/z offset
04 08 19 // x/y/z extent
01 05 07 06 // registers - show, sprite offset, x, y
\dx80000450 \wx0013 // crane top
00 00 19 // x/y/z offset
10 00 03 // x/y/z extent
01 05 07 06 // registers - show, sprite offset, x, y
\dx8000045E \wx0013 // crane hoist
02 00 19 // x/y/z offset
06 08 0A // x/y/z extent
01 05 08 06 // registers - show, sprite offset, x, y

0B 07 // use callback to determine date availability (1), layout (2) and animation frame (4)

0D F1 // disallow platform length 1 and > 4

10 \w900 // set little/lots threshold

12 \dxC0003824 // cargo types for randomisation triggers

14 FF // no wires
11 00 // no pylons
15 FF // prevent trains entering the tile

16 \wx01E1 // animation info 226 frames looping
17 04 // animation speed 2^4 ticks per frame
18 \wx0002 // animation triggers - cargo arrives (2)

3728 * 4	 01 04 01 04
3729 images/newcontainers2.pcx 72 5 01 31 64 -31 0 // 042D x, crane-track
3730 images/newcontainers2.pcx 214 5 01 31 64 -31 0 // 042E y, crane-track
3731 images/newcontainers2.pcx 4 5 01 31 64 -31 0 // 042F x, non-track
3732 images/newcontainers2.pcx 145 5 01 31 64 -31 0 // 0430 y, non-track

3733 * 7	 02 04 80 // ID
00 01
\w0

3734 * 4	 01 04 01 38
//@@LET xpos = 4
//@@LET ypos = 43
//@@LET xsize = 23
//@@LET ysize = 34
//@@LET xrel = -11
//@@LET yrel = -23
//@@LET xsizeh = 10
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 8 -)
3735 images/newcontainers2.pcx  21 43 01 34 6 -6 -17 // 042D x, back
3736 images/newcontainers2.pcx  17 43 01 34 10 -6 -19 // 042E x, back
3737 images/newcontainers2.pcx  13 43 01 34 14 -6 -21 // 042F x, back
3738 images/newcontainers2.pcx  4 43 01 34 23 -11 -23 // 0430 x, back
3739 images/newcontainers2.pcx  4 43 01 34 17 -7 -25 // 0431 x, back
3740 images/newcontainers2.pcx  4 43 01 34 13 -3 -27 // 0432 x, back
3741 images/newcontainers2.pcx  4 43 01 34 9 1 -29 // 0433 x, back

//@@LET xpos = 108
//@@LET ypos = 43
//@@LET xsize = 23
//@@LET ysize = 34
//@@LET xrel = -10
//@@LET yrel = -23
//@@LET xsizeh = 13
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 8 -)
3742 images/newcontainers2.pcx  108 43 01 34 6 2 -17 // 0434 y, back
3743 images/newcontainers2.pcx  108 43 01 34 10 -2 -19 // 0435 y, back
3744 images/newcontainers2.pcx  108 43 01 34 14 -6 -21 // 0436 y, back
3745 images/newcontainers2.pcx  108 43 01 34 23 -10 -23 // 0437 y, back
3746 images/newcontainers2.pcx  114 43 01 34 17 -8 -25 // 0438 y, back
3747 images/newcontainers2.pcx  118 43 01 34 13 -8 -27 // 0439 y, back
3748 images/newcontainers2.pcx  122 43 01 34 9 -8 -29 // 043A y, back

//@@LET xpos = 31
//@@LET ypos = 43
//@@LET xsize = 23
//@@LET ysize = 34
//@@LET xrel = -15
//@@LET yrel = -25
//@@LET xsizeh = 10
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 8 -)
3749 images/newcontainers2.pcx  48 43 01 34 6 -10 -19 // 043B x, front
3750 images/newcontainers2.pcx  44 43 01 34 10 -10 -21 // 043C x, front
3751 images/newcontainers2.pcx  40 43 01 34 14 -10 -23 // 043D x, front
3752 images/newcontainers2.pcx  31 43 01 34 23 -15 -25 // 043E x, front
3753 images/newcontainers2.pcx  31 43 01 34 17 -11 -27 // 043F x, front
3754 images/newcontainers2.pcx  31 43 01 34 13 -7 -29 // 0440 x, front
3755 images/newcontainers2.pcx  31 43 01 34 9 -3 -31 // 0441 x, front

//@@LET xpos = 135
//@@LET ypos = 43
//@@LET xsize = 23
//@@LET ysize = 34
//@@LET xrel = -6
//@@LET yrel = -25
//@@LET xsizeh = 13
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 8 -)
3756 images/newcontainers2.pcx  135 43 01 34 6 6 -19 // 0442 y, front
3757 images/newcontainers2.pcx  135 43 01 34 10 2 -21 // 0443 y, front
3758 images/newcontainers2.pcx  135 43 01 34 14 -2 -23 // 0444 y, front
3759 images/newcontainers2.pcx  135 43 01 34 23 -6 -25 // 0445 y, front
3760 images/newcontainers2.pcx  141 43 01 34 17 -4 -27 // 0446 y, front
3761 images/newcontainers2.pcx  145 43 01 34 13 -4 -29 // 0447 y, front
3762 images/newcontainers2.pcx  149 43 01 34 9 -4 -31 // 0448 y, front

//@@LET xpos = 56
//@@LET ypos = 43
//@@LET xsize = 30
//@@LET ysize = 17
//@@LET xrel = -5
//@@LET yrel = -1
//@@LET xsizeh = 15
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 8 -)
3763 images/newcontainers2.pcx  75 43 01 17 11 2 5 // 0449 x, top
3764 images/newcontainers2.pcx  71 43 01 17 15 2 3 // 044A x, top
3765 images/newcontainers2.pcx  67 43 01 17 19 2 1 // 044B x, top
3766 images/newcontainers2.pcx  56 43 01 17 30 -5 -1 // 044C x, top
3767 images/newcontainers2.pcx  56 43 01 17 19 -1 -3 // 044D x, top
3768 images/newcontainers2.pcx  56 43 01 17 15 3 -5 // 044E x, top
3769 images/newcontainers2.pcx  56 43 01 17 11 7 -7 // 044F x, top

//@@LET xpos = 160
//@@LET ypos = 43
//@@LET xsize = 30
//@@LET ysize = 17
//@@LET xrel = -23
//@@LET yrel = -1
//@@LET xsizeh = 15
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 8 -)
3770 images/newcontainers2.pcx  160 43 01 17 11 -11 5 // 0450 y, top
3771 images/newcontainers2.pcx  160 43 01 17 15 -15 3 // 0451 y, top
3772 images/newcontainers2.pcx  160 43 01 17 19 -19 1 // 0452 y, top
3773 images/newcontainers2.pcx  160 43 01 17 30 -23 -1 // 0453 y, top
3774 images/newcontainers2.pcx  171 43 01 17 19 -16 -3 // 0454 y, top
3775 images/newcontainers2.pcx  175 43 01 17 15 -16 -5 // 0455 y, top
3776 images/newcontainers2.pcx  179 43 01 17 11 -16 -7 // 0456 y, top

//@@LET xpos = 88
//@@LET ypos = 43
//@@LET xsize = 15
//@@LET ysize = 16
//@@LET xrel = -9
//@@LET yrel = -3
//@@LET xsizeh = 7
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 8 -)
3777 images/newcontainers2.pcx  100 43 01 16 3 -9 3 // 0457 x, hoist
3778 images/newcontainers2.pcx  96 43 01 16 7 -9 1 // 0458 x, hoist
3779 images/newcontainers2.pcx  92 43 01 16 11 -9 -1 // 0459 x, hoist
3780 images/newcontainers2.pcx  88 43 01 16 15 -9 -3 // 045A x, hoist
3781 images/newcontainers2.pcx  88 43 01 16 12 -5 -5 // 045B x, hoist
3782 images/newcontainers2.pcx  88 43 01 16 8 -1 -7 // 045C x, hoist
3783 images/newcontainers2.pcx  88 43 01 16 4 3 -9 // 045D x, hoist

//@@LET xpos = 192
//@@LET ypos = 43
//@@LET xsize = 15
//@@LET ysize = 16
//@@LET xrel = -4
//@@LET yrel = -3
//@@LET xsizeh = 8
//@@LET xsizeh1 = (xsize xsizeh -)
//@@LET xposh = (xpos xsizeh1 +)
//@@LET xrelh = (xrel xposh + xpos - 8 -)
3784 images/newcontainers2.pcx  192 43 01 16 3 8 3 // 045E y, hoist
3785 images/newcontainers2.pcx  192 43 01 16 7 4 1 // 045F y, hoist
3786 images/newcontainers2.pcx  192 43 01 16 11 0 -1 // 0460 y, hoist
3787 images/newcontainers2.pcx  192 43 01 16 15 -4 -3 // 0461 y, hoist
3788 images/newcontainers2.pcx  195 43 01 16 12 -5 -5 // 0462 y, hoist
3789 images/newcontainers2.pcx  199 43 01 16 8 -5 -7 // 0463 y, hoist
3790 images/newcontainers2.pcx  203 43 01 16 4 -5 -9 // 0464 y, hoist

3791 * 7	 02 04 00 // ID
00 01 // Number of sets (little and lots)
\w0

3792 * 4	 01 04 04 08
// Cargo level 0
3793 images/newcontainers2.pcx 33 252 01 01 01 -28 -14 // 042D x, container 1 (dummy)
3794 images/newcontainers2.pcx 168 252 01 01 01 -9 -9 // 042E y, container 1 (dummy)
3795 images/newcontainers2.pcx 33 252 01 01 01 -28 -14 // 042F x, container 2 (dummy)
3796 images/newcontainers2.pcx 168 252 01 01 01 -9 -9 // 0430 y, container 2 (dummy)
3797 images/newcontainers2.pcx 33 252 01 01 01 -28 -14 // 0431 x, container 3 (dummy)
3798 images/newcontainers2.pcx 168 252 01 01 01 -9 -9 // 0432 y, container 3 (dummy)
3799 images/newcontainers2.pcx 33 252 01 01 01 -28 -14 // 0433 x, container 3 (dummy)
3800 images/newcontainers2.pcx 168 252 01 01 01 -9 -9 // 0434 y, container 3 (dummy)
// Cargo level 1
3801 images/newcontainers2.pcx 4 131 09 23 39 -28 -6 // 042D x, container 1
3802 images/newcontainers2.pcx 133 131 09 24 29 -9 -9 // 042E y, container 1
3803 images/newcontainers2.pcx 4 171 09 18 39 -28 -1 // 042F x, container 2
3804 images/newcontainers2.pcx 133 171 09 24 33 -3 -4 // 0430 y, container 2
3805 images/newcontainers2.pcx 4 212 09 16 29 -18 -4 // 0431 x, container 2
3806 images/newcontainers2.pcx 133 212 09 21 29 -9 -9 // 0432 y, container 2
3807 images/newcontainers2.pcx 4 252 09 34 27 -22 -14 // 0433 x, container 3
3808 images/newcontainers2.pcx 133 252 09 24 33 -9 -4 // 0434 y, container 3
// Cargo level 2
3809 images/newcontainers2.pcx 45 131 09 28 39 -28 -11 // 042D x, container 1
3810 images/newcontainers2.pcx 164 131 09 34 39 -9 -14 // 042E y, container 1
3811 images/newcontainers2.pcx 45 171 09 29 39 -28 -9 // 042F x, container 2
3812 images/newcontainers2.pcx 168 171 09 34 39 -9 -14 // 0430 y, container 2
3813 images/newcontainers2.pcx 35 212 09 28 39 -28 -11 // 0431 x, container 2
3814 images/newcontainers2.pcx 164 212 09 34 39 -9 -14 // 0432 y, container 2
3815 images/newcontainers2.pcx 33 252 09 34 33 -28 -14 // 0433 x, container 3
3816 images/newcontainers2.pcx 168 252 09 29 39 -9 -9 // 0434 y, container 3
// Cargo level 3
3817 images/newcontainers2.pcx 86 131 09 34 39 -28 -14 // 042D x, container 1
3818 images/newcontainers2.pcx 205 131 09 34 39 -9 -14 // 042E y, container 1
3819 images/newcontainers2.pcx 86 171 09 34 39 -28 -14 // 042F x, container 2
3820 images/newcontainers2.pcx 209 171 09 34 39 -9 -14 // 0430 y, container 2
3821 images/newcontainers2.pcx 76 212 09 34 39 -28 -14 // 0431 x, container 2
3822 images/newcontainers2.pcx 205 212 09 34 39 -9 -14 // 0432 y, container 2
3823 images/newcontainers2.pcx 68 252 09 34 39 -28 -14 // 0433 x, container 3
3824 images/newcontainers2.pcx 209 252 09 34 39 -9 -14 // 0434 y, container 3

3825 * 35	 02 04 01 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

3826 * 35	 02 04 02 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

3827 * 35	 02 04 03 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

3828 * 35	 02 04 04 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

3829 * 15	 02 04 82 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0001
\wx0002
\wx0003
\wx0004

// Empty
3830 * 7	 02 04 81 // ID
00 01
\w0

// Test variable 10 for real sprites
3831 * 18	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
02
\wx0080 04 04 // ground overlay sprites
\wx0082 05 05 // container sprites
\wx0000 // crane sprites

// Test variable 10 for real sprites - empty
3832 * 18	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
02
\wx0080 04 04 // ground overlay sprites
\wx0081 05 05 // container sprites
\wx0000 // crane sprites

// frame     : current frame of animation (0 to 225)
// a_frame   : adjusted frame number for direction change (0 to 112, 112 to 0)
// t_frame   : frame number for tile (0 to 31)

// Frames
// frame:      0  1  2 ... 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ...
// t_frame t0: 8  9 10 ... 25 26 27 28 29 30 31
//         t1:                    0  1  2  3  4  5  6  7  8  9 10 11 12 ... 19 20 21 22 23 24 25 26 27 28 29 30 31
//         t2:                                                                                       0  1  2  3  4  5  6  7 ...

// t1 movement:                     | along platform | -  - |         traverse         | -  - | along platform |
// t1 sprite offset:                 0  1  2  3  3  3  3  3  3  3  3  3 ...  3  3  3  3  3  3  3  3  3  4  5  6
// t1 visible:                    0  1  1  1  1  1  1  1  1  1  1  1  1 ...  1  1  1  1  1  1  1  1  1  1  1  1  0
// t1 x offset (move):               8  8  8  8  6  4  4  4  4  4  4  4 ...  4  4  4  4  4  4  4  2  0  0  0  0
// t1 y offset (traverse):           3  3  3  3  3  3  3  3  2  1  0  0 ...  6  6  5  4  3  3  3  3  3  3  3  3

// Get animation frame of south tile
3833 * 15	 02 04 0A // ID
81 41 // platform info and relative position
24 0F // position along platform from south
\2rst
7B 66 // animation frame of nearby tile using position from south as parameter
00 FF
00 // return frame
\wx8000

// Calculate a_frame for reverse movement
3834 * 15	 02 04 50 // ID
81 1A // all bits on
20 E1 // max_frame = 225
\2-
7D 25 // read register for frame of south tile
00 FF
00 // return a_frame = max_frame - frame
\wx8000

// Set a_frame to frame for forward movement
3835 * 11	 02 04 51 // ID
81
7D 25 // read register for frame of south tile
00 FF
00 // return a_frame = frame
\wx8000

// Select movement direction
3836 * 19	 02 04 52 // ID
81 7E 0A // animation frame - south tile
20 FF
\2sto 1A
00 25 // store in register to prevent multiple calls to frame of nearby tile
01
\wx0051 \b0 \b112 // frames 0 to 112
\wx0050 // frames 113 to max

// Calculate t_frame {t_frame = (a_frame + 8) - (p_pos * 27)}
3837 * 42	 02 04 53 // ID
85 1A // all bits on
20 \w0
\2-
41 // platform info, get position along platform from south
24 \wx000F
\2*
1A // all bits on
20 \w27 // val * 27
\2+
7E 52 // get a_frame
20 \wxFFFF
\2+
1A // all bits on
20 \w8 // val + 8
\2> // result = max(val1, val2)
1A // all bits on
20 \w0 // result is capped at min 0
\2< // result = min(val1, val2)
1A // all bits on
00 \w31 // result is capped at max 31
00 // return t_frame
\wx8000

// Select move offset
3838 * 27	 02 04 65 // ID
81
7D 21 // read register for t_frame
00 FF
04
\wx8008 \b1 \b4
\wx8006 \b5 \b5
\wx8004 \b6 \b25
\wx8002 \b26 \b26
\wx8000

// Check for animated tile
3839 * 14	 02 04 64 // ID
81 41 // platform info and relative position for individually built sections
04 0F // position along platform from south
01
\wx0065 00 03 // if valid animation tile
\wx8000 // else

// Select hoist move offset
3840 * 51	 02 04 67 // ID
81
7D 21 // read register for t_frame
00 FF
0A
\wx8002 \b9 \b9
\wx8001 \b10 \b10
\wx8000 \b11 \b13
\wx8001 \b14 \b14
\wx8002 \b15 \b15
\wx8004 \b17 \b17
\wx8005 \b18 \b18
\wx8006 \b19 \b20
\wx8005 \b21 \b21
\wx8004 \b22 \b22
\wx8003

// Check for animated tile
3841 * 14	 02 04 66 // ID
81 41 // platform info and relative position for individually built sections
04 0F // position along platform from south
01
\wx0067 00 03 // if valid animation tile
\wx8000 // else

// Hide crane
3842 * 15	 02 04 63 // ID
81
7D 21 // read register for t_frame
00 FF
01
\wx8001 \b1 \b30 // t_frame 1 to 30 - show
\wx8000 // hide

// Check for animated tile
3843 * 14	 02 04 62 // ID
81 41 // platform info and relative position for individually built sections
04 0F // position along platform from south
01
\wx0063 00 03 // if valid animation tile
\wx8000 // hide

// Select sprite
3844 * 39	 02 04 61 // ID
81 7E 53 // get tile frame (0 to 31)
20 FF
\2sto 1A
00 21 // store in register to prevent calculating a_frame multiple times
06
\wx8000 \b1 \b1
\wx8001 \b2 \b2
\wx8002 \b3 \b3
\wx8004 \b28 \b28
\wx8005 \b29 \b29
\wx8006 \b30 \b30
\wx8003

// Check for animated tile
3845 * 14	 02 04 60 // ID
81 41 // platform info and relative position for individually built sections
04 0F // position along platform from south
01
\wx0061 00 03 // if valid animation tile
\wx8000 // else

3846 * 15	 02 04 68 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8000
\wx8002
\wx8004
\wx8006

// Callback 140 - Animation control

3847 * 14	 02 04 5B // ID
81 18 // extra callback info - reason for call
00 FF
01
\wx80FE 01 01 // cargo arrives - start
\wx80FD

// Callback 141 - Next animation frame

// Calculate new frame for reverse movement
3848 * 14	 02 04 6A // ID
81 1A // all bits on
20 \b225 // max_frame = 225
\2-
4A // animation frame
00 FF
00 // return new_frame = max_frame - frame
\wx8000

// Animation frame control - determine point to reverse direction
// {max frame = ((plat_len - 1) * 32) - 6}
3849 * 42	 02 04 6B // ID
85 41 // platform info, total platform length
30 \wx000F // shift 16 and mask 4 bits
\2< // result = min(val1, val2)
1A // all bits on
20 \w4 // result is capped at max 4
\2-
1A // all bits on
20 \w1 // val - 1

1A // all bits on
20 \w5 // val * 32
\2-
1A // all bits on
20 \w6 // val - 6 - gives max frame for this platform length
\2-
4A // animation frame
00 \wx00FF // subtract animation frame from max frame
01
\wx006A \w0 \w0 // if animation frame = max frame, set new frame
\wx80FE // continue animation

3850 * 14	 02 04 5C // ID
81 41 // platform info and relative position
04 0F // position along platform from south
01
\wx006B 00 00 // if most southerly tile
\wx80FE

3851 * 24	 02 04 5D // ID
85
7D 20 // read register for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
00 \wxFFFF
01
\wx80FF \w0 \w50 // if not much cargo
\wx005C // continue

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3852 * 88	 02 04 15 // ID
85
7E 60 // get crane sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - sprite offset
\2rst
7E 62 // get hide/show flag
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E 64 // get movement offset
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - move x offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0007 // store in register - move y offset
\2rst
7E 66 // get hoist movement offset
20 \wx7FFF
\2sto 1A
20 \wx0008 // store in register - move y offset - hoist
\2rst
7E 68 // get random container sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0004 // store in register - container sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
3853 * 87	 02 04 17 // ID
85
7E 60 // get crane sprite offset
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - sprite offset
\2rst
7E 62 // get hide/show flag
20 \wx7FFF
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
7E 64 // get movement offset
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - move x offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0007 // store in register - move y offset
\2rst
7E 66 // get hoist movement offset
20 \wx7FFF
\2sto 1A
20 \wx0008 // store in register - move y offset - hoist
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0004 // store in register - container sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

// Purchase
3854 * 82	 02 04 16 // ID
85
1A // all bits on
20 \w3 // val = 3
\2sto 1A
20 \wx0005 // store in register - sprite offset
\2rst
1A // all bits on
20 \w1 // val = 1
\2sto 1A
20 \wx0001 // store in register - show crane flag
\2rst
1A // all bits on
20 \w4 // val = 4
\2sto 1A
20 \wx0006 // store in register - move x offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0007 // store in register - move y offset
\2rst
1A // all bits on
20 \w3 // val = 3
\2sto 1A
20 \wx0008 // store in register - move y offset - hoist
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0004 // store in register - container sprite offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Check for availability
3855 * 14	 02 04 07 // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1960 // do not allow build before 1960
\wx8001

// Store cargo id in register 0x20 and check for callbacks 0x14, 0x140 and 0x141

// (ID, cargo id)
3856 * 39	 02 04 1D 85 1A 20 02 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // mail
3857 * 39	 02 04 1E 85 1A 20 05 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // goods
3858 * 39	 02 04 1F 85 1A 20 0B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // paper
3859 * 39	 02 04 20 85 1A 20 0C 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // food
3860 * 39	 02 04 21 85 1A 20 0D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // fruit
3861 * 39	 02 04 22 85 1A 20 1E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // fish
3862 * 39	 02 04 23 85 1A 20 1F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // wool
3863 * 39	 02 04 24 85 1A 20 20 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // glass
3864 * 39	 02 04 25 85 1A 20 21 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // ceramics
3865 * 39	 02 04 26 85 1A 20 22 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // bricks
3866 * 39	 02 04 27 85 1A 20 23 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // vehicles
3867 * 39	 02 04 28 85 1A 20 2A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // building materials
3868 * 39	 02 04 29 85 1A 20 2B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // engineering supplies
3869 * 39	 02 04 2A 85 1A 20 2D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // farm supplies
3870 * 39	 02 04 2B 85 1A 20 30 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // manufacturing supplies
3871 * 39	 02 04 2C 85 1A 20 31 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // recyclables
3872 * 39	 02 04 2D 85 1A 20 32 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // scrap metal
3873 * 39	 02 04 2E 85 1A 20 37 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // sugar
3874 * 39	 02 04 2F 85 1A 20 38 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // coffee
3875 * 39	 02 04 30 85 1A 20 3B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx8000 \wx0014 \wx0014 \wx005B \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0015 // vehicle parts

// For purchase list
3876 * 23	 02 04 05 // ID
85 0C // callback
00 \wxFFFF
02
\wx0007 \wx0013 \wx0013 // date availability
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0016 // real sprites (crane at tile centre)

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3877 * 39	 02 04 09 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017

//@@WARNING ENABLE 113

// No suitable cargo
3878 * 29	 02 04 06 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx005B \wx0140 \wx0140 // animation control
\wx80FF \wx0141 \wx0141 // animation frame - stop
\wx0009 // real sprites

3879 * 70	 03 04
01 55
15
02 \wx001D // mail
05 \wx001E // goods
0B \wx001F // paper
0C \wx0020 // food
0D \wx0021 // fruit
1E \wx0022 // fish
1F \wx0023 // wool
20 \wx0024 // glass
21 \wx0025 // ceramics
22 \wx0026 // bricks
23 \wx0027 // vehicles
2A \wx0028 // building materials
2B \wx0029 // engineering supplies
2D \wx002A // farm supplies
30 \wx002B // manufacturing supplies
31 \wx002C // recyclables
32 \wx002D // scrap metal
37 \wx002E // sugar
38 \wx002F // coffee
3B \wx0030 // vehicle parts
FF \wx0005 // purchase list
\wx0006 // no suitable cargo

3880 * 116	 00 04 08 01 56
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
43
\dx00008F8D \wx0002 // ground sprite
10 // register
\dx8000042F \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0002 // container
00 02 00 // x/y/z offset
10 06 10 // x/y/z extent
04 // registers - sprite offset
\dx8000842D \wx0002 // container
00 08 00 // x/y/z offset
10 06 10 // x/y/z extent
05 // registers - sprite offset

// 01 (y)
43
\dx00008F8D \wx0002 // ground sprite
10 // register
\dx80000430 \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842E \wx0002 // container
02 00 00 // x/y/z offset
06 10 10 // x/y/z extent
04 // registers - sprite offset
\dx8000842E \wx0002 // container
08 00 00 // x/y/z offset
06 10 10 // x/y/z extent
05 // registers - sprite offset

0B 03 // use callback to determine date availability (1) and layout (2)

10 \w900 // set little/lots threshold

14 FF // wires (none)
11 00 // pylons (none)
15 FF // prevent trains entering the tile

12 \dxC0003824 // cargo types for randomisation triggers

// Test variable 10 for real sprites
3881 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0082 // container sprites

// Test variable 10 for real sprites - empty
3882 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0081 // container sprites - empty

3883 * 15	 02 04 68 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8000
\wx8002
\wx8004
\wx8006

3884 * 15	 02 04 69 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8002
\wx8004
\wx8006
\wx8000

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3885 * 45	 02 04 15 // ID
85
7E 68 // get random container sprite offset 1
20 \wx7FFF
\2sto 1A
20 \wx0004 // store in register - containers 1 sprite offset
\2rst
7E 69 // get random container sprite offset 2
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - containers 2 sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
3886 * 38	 02 04 17 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0004 // store in register - containers 1 sprite offset
\2sto 1A
20 \wx0005 // store in register - containers 2 sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

// Purchase
3887 * 42	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0004 // store in register - containers 1 sprite offset
\2rst
1A // all bits on
20 \w2 // val = 2
\2sto 1A
20 \wx0005 // store in register - containers 2 sprite offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Check for availability
3888 * 14	 02 04 07 // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1960 // do not allow build before 1960
\wx8001

3889 * 14	 02 04 10 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
3890 * 18	 02 04 11 // ID
81 0C // callback
00 FF
02
\wx0007 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3891 * 39	 02 04 09 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017
\wx0017

//@@WARNING ENABLE 113

// No suitable cargo
3892 * 14	 02 04 12 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

3893 * 70	 03 04
01 56
15
02 \wx0010 // mail
05 \wx0010 // goods
0B \wx0010 // paper
0C \wx0010 // food
0D \wx0010 // fruit
1E \wx0010 // fish
1F \wx0010 // wool
20 \wx0010 // glass
21 \wx0010 // ceramics
22 \wx0010 // bricks
23 \wx0010 // vehicles
2A \wx0010 // building materials
2B \wx0010 // engineering supplies
2D \wx0010 // farm supplies
30 \wx0010 // manufacturing supplies
31 \wx0010 // recyclables
32 \wx0010 // scrap metal
37 \wx0010 // sugar
38 \wx0010 // coffee
3B \wx0010 // vehicle parts
FF \wx0011 // purchase list
\wx0012 // no suitable cargo
3894 * 4	 01 04 01 0C
3895 images/vehicles.pcx 44 104 01 23 18 -6 -14 // 042D x, forklift
3896 images/vehicles.pcx 21 104 01 23 18 -10 -14 // 042E y, forklift
3897 images/vehicles.pcx 79 104 01 6 9 -5 0 // 042F x, forks
3898 images/vehicles.pcx 66 104 01 6 9 -2 0 // 0430 y, forks
3899 images/vehicles.pcx 220 104 01 22 13 -6 -8 // 0431 forklift turn blue
3900 images/vehicles.pcx 201 104 01 22 13 -6 -8 // 0432 forklift turn white
3901 images/vehicles.pcx 111 104 09 11 13 -9 -4 // 0433 x, container blue start
3902 images/vehicles.pcx 93 104 09 11 13 -2 -4 // 0434 y, container white start
3903 images/vehicles.pcx 147 104 09 11 13 -2 -4 // 0435 x, container blue stacked
3904 images/vehicles.pcx 129 104 09 11 13 -9 -4 // 0436 y, container white stacked
3905 images/vehicles.pcx 183 104 09 11 13 -2 -4 // 0437 x, container yellow static
3906 images/vehicles.pcx 165 104 09 11 13 -9 -4 // 0438 y, container red static

3907 * 7	 02 04 00 // ID
00 01
\w0

3908 * 430	 00 04 0B 01 57
08 "ISRP"

// Sprite layout
1A 06
// 00 (x) - move forward/lift/back
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000437 \wx0001 // container yellow static
00 0A 00 // x/y/z offset
02 05 05 // x/y/z extent
01 // register - show
\dx80000433 \wx0031 // container blue start
0A 00 00 // x/y/z offset
05 02 05 // x/y/z extent
01 05 06 07 // registers - show, x, y, z
\dx8000042F \wx0031 // forks
0B 00 00 // x/y/z offset
04 02 01 // x/y/z extent
02 08 09 0A // registers - show, x, y, z
\dx8000042D \wx0010 // forklift
0B 02 00 // x/y/z offset
04 07 12 // x/y/z extent
08 09 // registers - x, y

// 01 (y) - move forward/lift/back
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000438 \wx0001 // container red static
0A 00 00 // x/y/z offset
05 02 05 // x/y/z extent
01 // register - show
\dx80000434 \wx0031 // container white start
00 0A 00 // x/y/z offset
02 05 05 // x/y/z extent
01 06 05 07 // registers - show, x, y, z
\dx80000430 \wx0031 // forks
00 0B 00 // x/y/z offset
02 04 01 // x/y/z extent
02 09 08 0A // registers - show, x, y, z
\dx8000042E \wx0010 // forklift
02 0B 00 // x/y/z offset
07 04 12 // x/y/z extent
09 08 // registers - x, y

// 02 (x) - turn
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000437 \wx0001 // container yellow static
00 0A 00 // x/y/z offset
02 05 05 // x/y/z extent
01 // register - show
\dx80000431 \wx0010 // forklift
08 08 00 // x/y/z offset
08 08 12 // x/y/z extent
08 09 // registers - x, y

// 03 (y) - turn
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000438 \wx0001 // container red static
0A 00 00 // x/y/z offset
05 02 05 // x/y/z extent
01 // register - show
\dx80000432 \wx0010 // forklift
08 08 00 // x/y/z offset
08 08 12 // x/y/z extent
09 08 // registers - x, y

// 04 (x) - move forward/lower/back
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000437 \wx0001 // container yellow static
00 0A 00 // x/y/z offset
02 05 05 // x/y/z extent
01 // register - show
\dx80000435 \wx0031 // container blue stacked
00 0A 05 // x/y/z offset
02 05 05 // x/y/z extent
01 05 06 07 // registers - show, x, y, z
\dx80000430 \wx0031 // forks
00 0B 00 // x/y/z offset
02 04 01 // x/y/z extent
02 08 09 0A // registers - show, x, y, z
\dx8000042E \wx0010 // forklift
02 0B 00 // x/y/z offset
07 04 12 // x/y/z extent
08 09 // registers - x, y

// 05 (y) - move forward/lower/back
45
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000438 \wx0001 // container red static
0A 00 00 // x/y/z offset
05 02 05 // x/y/z extent
01 // register - show
\dx80000436 \wx0031 // container white stacked
0A 00 05 // x/y/z offset
05 02 05 // x/y/z extent
01 06 05 07 // registers - show, x, y, z
\dx8000042F \wx0031 // forks
0B 00 00 // x/y/z offset
04 02 01 // x/y/z extent
02 09 08 0A // registers - show, x, y, z
\dx8000042D \wx0010 // forklift
0B 02 00 // x/y/z offset
04 07 12 // x/y/z extent
09 08 // registers - x, y

0B 07 // use callback to determine date availability (1), layout (2) and animation frame (4)

// Only allow a 1 x 1 layout
0C FE
0D FE

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

16 \wx015B // animation info 92 frames looping
17 03 // animation speed 2^3 ticks per frame
18 \wx0003 // animation triggers - build (1), cargo arrives (2)

// Test variable 10 for real sprites
3909 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0000 // forklift sprites

// Calculate a_frame for reverse movement
3910 * 14	 02 04 50 // ID
81 1A // all bits on
20 \b91 // max_frame
\2-
4A // animation frame
00 FF
00 // return a_frame = max_frame - frame
\wx8000

// Set a_frame to frame for forward movement
3911 * 10	 02 04 51 // ID
81 4A // animation frame
00 FF
00 // return a_frame = frame
\wx8000

// Select movement direction
3912 * 14	 02 04 52 // ID
81 4A // animation frame
00 FF
01
\wx0051 \b0 \b45 // frames 0 to 45
\wx0050 // frames 46 to max

3913 * 15	 02 04 7A // ID
81
1A // all bits on
20 \b29 // val = 29
\2-
7D 21 // read register for a_frame
00 FF
00
\wx8000

3914 * 15	 02 04 7B // ID
81
7D 21 // read register for a_frame
20 FF
\2-
1A // all bits on
00 \b33 // val = 33
00
\wx8000

3915 * 15	 02 04 7C // ID
81
1A // all bits on
20 \b7 // val = 7
\2-
7D 21 // read register for a_frame
00 FF
00
\wx8000

3916 * 15	 02 04 7D // ID
81
7D 21 // read register for a_frame
20 FF
\2-
1A // all bits on
00 \b11 // val = 11
00
\wx8000

// Offset for movement x
3917 * 31	 02 04 70 // ID
81
7E 52 // a_frame 0 to 45
20 FF
\2sto 1A
00 21 // store in register to prevent calculating a_frame multiple times
\b4
\wx8007 \b21 \b22
\wx007A \b23 \b28 // 06 to 01
\wx007B \b34 \b39 // 01 to 06
\wx8007 \b40 \b45
\wx8000

// Offset for movement y
3918 * 27	 02 04 71 // ID
81
7D 21 // read register for a_frame
00 FF
\b4
\wx8007 \b00 \b00
\wx007C \b01 \b06 // 06 to 01
\wx007D \b12 \b17 // 01 to 06
\wx8007 \b18 \b19
\wx8000

// Offset for forks z
3919 * 39	 02 04 72 // ID
81
7D 21 // read register for a_frame
00 FF
\b7
\wx8002 \b0 \b1
\wx8001 \b2 \b2
\wx8005 \b35 \b40
\wx8004 \b41 \b41
\wx8003 \b42 \b42
\wx8002 \b43 \b43
\wx8001 \b44 \b44
\wx8000

// Show/hide flag for forks
3920 * 19	 02 04 73 // ID
81
7D 21 // read register for a_frame
00 FF
\b2
\wx8001 \b0 \b5
\wx8001 \b35 \b45
\wx8000

// Offset for container position x
3921 * 19	 02 04 74 // ID
81
7D 21 // read register for a_frame
00 FF
\b2
\wx8007 \b21 \b22
\wx007A \b23 \b28 // 06 to 01
\wx8000

// Offset for container position y
3922 * 19	 02 04 75 // ID
81
7D 21 // read register for a_frame
00 FF
\b2
\wx007D \b12 \b17 // 01 to 06
\wx8007 \b18 \b19
\wx8000

// Offset for container position z
3923 * 47	 02 04 76 // ID
81
7D 21 // read register for a_frame
00 FF
\b9
\wx8001 \b8 \b8
\wx8002 \b9 \b9
\wx8003 \b10 \b10
\wx8004 \b11 \b19
\wx8001 \b24 \b24
\wx8002 \b25 \b25
\wx8003 \b26 \b30
\wx8002 \b31 \b31
\wx8001 \b32 \b32
\wx8000

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Set registers
3924 * 100	 02 04 5A // ID
85
// forklift
7E 70 // get offset for movement - x
20 \wx7FFF
\2sto 1A
20 \wx0008 // store in register - x offset
\2rst
7E 71 // get offset for movement - y
20 \wx7FFF
\2sto 1A
20 \wx0009 // store in register - y offset
\2rst
// forks
7E 73 // get show/hide flag
20 \wx7FFF
\2sto 1A
20 \wx0002 // store in register - show/hide flag
\2rst
7E 72 // get offset for movement -z
20 \wx7FFF
\2sto 1A
20 \wx000A // store in register - z offset
\2rst
// container
7E 74 // get offset for movement - x
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - x offset
\2rst
7E 75 // get offset for movement - y
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - y offset
\2rst
7E 76 // get offset for movement -z
20 \wx7FFF
\2sto 1A
20 \wx0007 // store in register - z offset
\2rst
// ground
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx8000 \w0 \w0
\wx8000

3925 * 28	 02 04 53 // ID
85
1A // all bits on
20 \w1 // val = 1
\2sto 1A
20 \wx0001 // store in register - show/hide containers flag
\2rst
7E 5A // set registers
00 \w0
01
\wx001B \w0 \w0
\wx001B

3926 * 28	 02 04 59 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0001 // store in register - show/hide containers flag
\2rst
7E 5A // set registers
00 \w0
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

3927 * 18	 02 04 54 // ID
81 4A // animation frame
00 FF
02
\wx0059 \b46 \b46 // empty
\wx0059 \b0 \b0 // empty
\wx0053 // continue

3928 * 24	 02 04 58 // ID
85
7D 20 // read register for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
00 \wxFFFF
01
\wx0054 \w0 \w50 // if not much cargo
\wx0053 // continue

// Animation control - maybe start animation
3929 * 14	 02 04 56 // ID
81 10 // extra callback info - random bits
00 03 // use low bits (different for each tile)
01
\wx80FE 00 02 // 75% chance of start
\wx80FD // do nothing

// Animation start/stop control
3930 * 18	 02 04 57 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx8001 00 00 // build - start
\wx0056 01 01 // cargo arrives - maybe start
\wx80FD // do nothing

// Animation frame
3931 * 18	 02 04 55 // ID
81 4A // animation frame
00 FF
02
\wx80FF \b46 \b46 // stop
\wx80FF \b0 \b0 // stop
\wx80FE // continue

3932 * 24	 02 04 5D // ID
85
7D 20 // read register for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
00 \wxFFFF
01
\wx0055 \w0 \w50 // if not much cargo
\wx80FE // continue

// Callback 14
3933 * 19	 02 04 10 // ID
81
7E 52 // a_frame 0 to 45
00 FF
02
\wx8002 \b20 \b20
\wx8004 \b21 \b45
\wx8000

// Check for availability
3934 * 14	 02 04 0C // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1965 // do not allow build before 1965
\wx8001

// Store cargo id in register 0x20 and check for callbacks 0x14, 0x140 and 0x141

// (ID, cargo id)
3935 * 39	 02 04 1D 85 1A 20 02 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // mail
3936 * 39	 02 04 1E 85 1A 20 05 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // goods
3937 * 39	 02 04 1F 85 1A 20 0B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // paper
3938 * 39	 02 04 20 85 1A 20 0C 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // food
3939 * 39	 02 04 21 85 1A 20 0D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // fruit
3940 * 39	 02 04 22 85 1A 20 1E 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // fish
3941 * 39	 02 04 23 85 1A 20 1F 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // wool
3942 * 39	 02 04 24 85 1A 20 20 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // glass
3943 * 39	 02 04 25 85 1A 20 21 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // ceramics
3944 * 39	 02 04 26 85 1A 20 22 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // bricks
3945 * 39	 02 04 27 85 1A 20 23 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // vehicles
3946 * 39	 02 04 28 85 1A 20 2A 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // building materials
3947 * 39	 02 04 29 85 1A 20 2B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // engineering supplies
3948 * 39	 02 04 2A 85 1A 20 2D 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // farm supplies
3949 * 39	 02 04 2B 85 1A 20 30 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // manufacturing supplies
3950 * 39	 02 04 2C 85 1A 20 31 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // recyclables
3951 * 39	 02 04 2D 85 1A 20 32 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // scrap metal
3952 * 39	 02 04 2E 85 1A 20 37 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // sugar
3953 * 39	 02 04 2F 85 1A 20 38 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // coffee
3954 * 39	 02 04 30 85 1A 20 3B 00 \2sto 1A 20 \wx0020 \2rst 0C 00 \wxFFFF 03 \wx0010 \wx0014 \wx0014 \wx0057 \wx0140 \wx0140 \wx005D \wx0141 \wx0141 \wx0058 // vehicle parts

// Empty
3955 * 29	 02 04 06 // ID
85 0C // callback
00 \wxFFFF
03
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0057 \wx0140 \wx0140 // animation control
\wx0055 \wx0141 \wx0141 // animation frame - stop
\wx0054 // real sprites

// For purchase list
3956 * 18	 02 04 02 // ID
81 0C // callback
00 FF
02
\wx000C 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx0053 // real sprites

3957 * 70	 03 04
01 57
15
02 \wx001D // mail
05 \wx001E // goods
0B \wx001F // paper
0C \wx0020 // food
0D \wx0021 // fruit
1E \wx0022 // fish
1F \wx0023 // wool
20 \wx0024 // glass
21 \wx0025 // ceramics
22 \wx0026 // bricks
23 \wx0027 // vehicles
2A \wx0028 // building materials
2B \wx0029 // engineering supplies
2D \wx002A // farm supplies
30 \wx002B // manufacturing supplies
31 \wx002C // recyclables
32 \wx002D // scrap metal
37 \wx002E // sugar
38 \wx002F // coffee
3B \wx0030 // vehicle parts
FF \wx0002 // purchase list
\wx0006 // no suitable cargo
3958 * 4	 01 04 04 04
3959 images/vehicles.pcx 56 611 01 24 29 -13 -3 // 042D x, container stacker S old - empty
3960 images/vehicles.pcx 21 611 01 24 29 -5 2 // 042E y, container stacker S old - empty
3961 images/vehicles.pcx 56 649 01 23 29 -13 -5 // 042F x, container stacker S new - empty
3962 images/vehicles.pcx 21 649 01 25 29 -5 1 // 0430 y, container stacker S new - empty

3963 images/vehicles.pcx 146 611 01 26 40 -13 -3 // 042D x, container stacker S old - level 1
3964 images/vehicles.pcx 91 611 01 21 49 -25 3 // 042E y, container stacker S old - level 1
3965 images/vehicles.pcx 146 649 01 28 40 -13 -5 // 042F x, container stacker S new - level 1
3966 images/vehicles.pcx 91 649 01 23 49 -25 1 // 0430 y, container stacker S new - level 1

3967 images/vehicles.pcx 247 611 01 33 40 -13 -5 // 042D x, container stacker S old - level 2
3968 images/vehicles.pcx 192 611 01 26 49 -25 2 // 042E y, container stacker S old - level 2
3969 images/vehicles.pcx 247 649 01 33 40 -13 -5 // 042F x, container stacker S new - level 2
3970 images/vehicles.pcx 192 649 01 27 49 -25 1 // 0430 y, container stacker S new - level 2

3971 images/vehicles.pcx 348 611 01 33 40 -13 -5 // 042D x, container stacker S old - level 3
3972 images/vehicles.pcx 293 611 01 32 49 -25 -4 // 042E y, container stacker S old - level 3
3973 images/vehicles.pcx 348 649 01 33 40 -13 -5 // 042F x, container stacker S new - level 3
3974 images/vehicles.pcx 293 649 01 32 49 -25 -4 // 0430 y, container stacker S new - level 3

3975 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

3976 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

3977 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

3978 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

3979 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

3980 * 7	 02 04 01 // ID
00 01
\w0

3981 * 94	 00 04 0A 01 58
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042F \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0002
00 00 00 // x/y/z offset
10 10 17 // x/y/z extent
05 // registers

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx80000430 \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842E \wx0002
00 00 00 // x/y/z offset
10 10 17 // x/y/z extent
05 // registers

0B 03 // use callback to determine date availability (1) and layout (2)

// Only allow a 1 x 1 layout
0C FE
0D FE

10 \w600 // set little/lots threshold

12 \dxC0003824 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
3982 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0000 // container stacker sprites

// Test variable 10 for real sprites - no suitable cargo
3983 * 14	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0001 // container stacker sprites - empty

// Offset for later type stacker
3984 * 17	 02 04 08 // ID
85 FA // date station was built
00 \wxFFFF
01
\wx8000 \w0 \w01/01/1980
\wx8002

// Offset for later type stacker - purchase
3985 * 17	 02 04 09 // ID
85 00 // current date
00 \wxFFFF
01
\wx8000 \w0 \w01/01/1980
\wx8002

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

3986 * 34	 02 04 26 // ID
85
7E 08 // get offset for later type stacker
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - stacker variety sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
3987 * 34	 02 04 27 // ID
85
7E 08 // get offset for later type stacker
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - stacker variety sprite offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001A \w0 \w0
\wx001A

// Purchase
3988 * 33	 02 04 2E // ID
85
7E 09 // get offset for later type stacker
20 \wx7FFF
\2sto 1A
20 \wx0005 // store in register - stacker variety sprite offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Check for availability
3989 * 14	 02 04 0C // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1960 // do not allow build before 1960
\wx8001

3990 * 14	 02 04 10 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0026 // real sprites

// For purchase list
3991 * 18	 02 04 11 // ID
81 0C // callback
00 FF
02
\wx000C 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx002E // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
3992 * 15	 02 04 09 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx0027
\wx0027
\wx0027
\wx0027

//@@WARNING ENABLE 113

// No suitable cargo
3993 * 14	 02 04 12 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

3994 * 70	 03 04
01 58
15
02 \wx0010 // mail
05 \wx0010 // goods
0B \wx0010 // paper
0C \wx0010 // food
0D \wx0010 // fruit
1E \wx0010 // fish
1F \wx0010 // wool
20 \wx0010 // glass
21 \wx0010 // ceramics
22 \wx0010 // bricks
23 \wx0010 // vehicles
2A \wx0010 // building materials
2B \wx0010 // engineering supplies
2D \wx0010 // farm supplies
30 \wx0010 // manufacturing supplies
31 \wx0010 // recyclables
32 \wx0010 // scrap metal
37 \wx0010 // sugar
38 \wx0010 // coffee
3B \wx0010 // vehicle parts
FF \wx0011 // purchase list
\wx0012 // no suitable cargo

3995 * 4	 01 04 04 02
3996 images/vehicles.pcx 21 321 01 21 29 -19 8 // 042D x, reach stacker N
3997 images/vehicles.pcx 56 321 01 21 29 -8 8 // 042E y, reach stacker N
3998 images/vehicles.pcx 91 321 01 36 51 -24 -7 // 042D x, reach stacker N
3999 images/vehicles.pcx 148 321 01 36 34 -8 -7 // 042E y, reach stacker N
4000 images/vehicles.pcx 188 321 01 41 51 -24 -12 // 042D x, reach stacker N
4001 images/vehicles.pcx 245 321 01 41 51 -25 -12 // 042E y, reach stacker N
4002 images/vehicles.pcx 302 321 01 41 53 -26 -12 // 042D x, reach stacker N
4003 images/vehicles.pcx 361 321 01 41 53 -25 -12 // 042E y, reach stacker N

4004 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

4005 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

4006 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

4007 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

4008 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

4009 * 7	 02 04 01 // ID
00 01
\w0

4010 * 92	 00 04 0A 01 59
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042F \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 16 // x/y/z extent

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx80000430 \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 16 // x/y/z extent

0B 03 // use callback to determine date availability (1) and layout (2)

// Only allow a 1 x 1 layout
0C FE
0D FE

10 \w600 // set little/lots threshold

12 \dxC0003824 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
4011 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0000 // reach stacker sprites

// Test variable 10 for real sprites - no suitable cargo
4012 * 14	 02 04 1A // ID
81 10 // additional information for sprite selection
00 0F
01
\wx0080 04 04 // ground overlay sprites
\wx0001 // reach stacker sprites - empty

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4013 * 23	 02 04 26 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
4014 * 23	 02 04 27 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001A \w0 \w0
\wx001A

// Purchase
4015 * 22	 02 04 2E // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Check for availability
4016 * 14	 02 04 0C // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1995 // do not allow build before 1995
\wx8001

4017 * 14	 02 04 10 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0026 // real sprites

// For purchase list
4018 * 18	 02 04 11 // ID
81 0C // callback
00 FF
02
\wx000C 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx002E // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4019 * 15	 02 04 09 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx0027
\wx0027
\wx0027
\wx0027

//@@WARNING ENABLE 113

// No suitable cargo
4020 * 14	 02 04 12 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

4021 * 70	 03 04
01 59
15
02 \wx0010 // mail
05 \wx0010 // goods
0B \wx0010 // paper
0C \wx0010 // food
0D \wx0010 // fruit
1E \wx0010 // fish
1F \wx0010 // wool
20 \wx0010 // glass
21 \wx0010 // ceramics
22 \wx0010 // bricks
23 \wx0010 // vehicles
2A \wx0010 // building materials
2B \wx0010 // engineering supplies
2D \wx0010 // farm supplies
30 \wx0010 // manufacturing supplies
31 \wx0010 // recyclables
32 \wx0010 // scrap metal
37 \wx0010 // sugar
38 \wx0010 // coffee
3B \wx0010 // vehicle parts
FF \wx0011 // purchase list
\wx0012 // no suitable cargo
// Copper/steel platforms
4022 * 4	 01 04 0D 04
// Empty
4023 images/processedp1.pcx 3 6 01 01 01 0 0 // x, back
4024 images/processedp1.pcx 3 6 01 01 01 0 0 // x, front
4025 images/processedp1.pcx 3 6 01 01 01 0 0 // y, back
4026 images/processedp1.pcx 3 6 01 01 01 0 0 // y, front
// Type 1 - level 1
4027 images/processedp1.pcx 3 3 01 27 40 -30 -8 // x, back
4028 images/processedp1.pcx 3 35 01 27 40 -30 -8 // x, front
4029 images/processedp1.pcx 3 67 01 27 40 -8 -8 // y, back
4030 images/processedp1.pcx 3 99 01 27 40 -8 -8 // y, front
// Type 1 - level 2
4031 images/processedp1.pcx 48 3 01 27 40 -30 -8 // x, back
4032 images/processedp1.pcx 48 35 01 27 40 -30 -8 // x, front
4033 images/processedp1.pcx 48 67 01 27 40 -8 -8 // y, back
4034 images/processedp1.pcx 48 99 01 27 40 -8 -8 // y, front
// Type 1 - level 3
4035 images/processedp1.pcx 93 3 01 27 40 -30 -8 // x, back
4036 images/processedp1.pcx 93 35 01 27 40 -30 -8 // x, front
4037 images/processedp1.pcx 93 67 01 27 40 -8 -8 // y, back
4038 images/processedp1.pcx 93 99 01 27 40 -8 -8 // y, front
// Type 2 - level 1
4039 images/processedp1.pcx 138 3 01 27 40 -30 -8 // x, back
4040 images/processedp1.pcx 138 35 01 27 40 -30 -8 // x, front
4041 images/processedp1.pcx 138 67 01 27 40 -8 -8 // y, back
4042 images/processedp1.pcx 138 99 01 27 40 -8 -8 // y, front
// Type 2 - level 2
4043 images/processedp1.pcx 183 3 01 27 40 -30 -8 // x, back
4044 images/processedp1.pcx 183 35 01 27 40 -30 -8 // x, front
4045 images/processedp1.pcx 183 67 01 27 40 -8 -8 // y, back
4046 images/processedp1.pcx 183 99 01 27 40 -8 -8 // y, front
// Type 2 - level 3
4047 images/processedp1.pcx 228 3 01 27 40 -30 -8 // x, back
4048 images/processedp1.pcx 228 35 01 27 40 -30 -8 // x, front
4049 images/processedp1.pcx 228 67 01 27 40 -8 -8 // y, back
4050 images/processedp1.pcx 228 99 01 27 40 -8 -8 // y, front
// Type 3 - level 1
4051 images/processedp1.pcx 273 3 01 27 40 -30 -8 // x, back
4052 images/processedp1.pcx 273 35 01 27 40 -30 -8 // x, front
4053 images/processedp1.pcx 273 67 01 27 40 -8 -8 // y, back
4054 images/processedp1.pcx 273 99 01 27 40 -8 -8 // y, front
// Type 3 - level 2
4055 images/processedp1.pcx 318 3 01 27 40 -30 -8 // x, back
4056 images/processedp1.pcx 318 35 01 27 40 -30 -8 // x, front
4057 images/processedp1.pcx 318 67 01 27 40 -8 -8 // y, back
4058 images/processedp1.pcx 318 99 01 27 40 -8 -8 // y, front
// Type 3 - level 3
4059 images/processedp1.pcx 363 3 01 27 40 -30 -8 // x, back
4060 images/processedp1.pcx 363 35 01 27 40 -30 -8 // x, front
4061 images/processedp1.pcx 363 67 01 27 40 -8 -8 // y, back
4062 images/processedp1.pcx 363 99 01 27 40 -8 -8 // y, front
// Type 4 - level 1
4063 images/processedp1.pcx 408 3 01 27 40 -30 -8 // x, back
4064 images/processedp1.pcx 408 35 01 27 40 -30 -8 // x, front
4065 images/processedp1.pcx 408 67 01 27 40 -8 -8 // y, back
4066 images/processedp1.pcx 408 99 01 27 40 -8 -8 // y, front
// Type 4 - level 2
4067 images/processedp1.pcx 453 3 01 27 40 -30 -8 // x, back
4068 images/processedp1.pcx 453 35 01 27 40 -30 -8 // x, front
4069 images/processedp1.pcx 453 67 01 27 40 -8 -8 // y, back
4070 images/processedp1.pcx 453 99 01 27 40 -8 -8 // y, front
// Type 4 - level 3
4071 images/processedp1.pcx 498 3 01 27 40 -30 -8 // x, back
4072 images/processedp1.pcx 498 35 01 27 40 -30 -8 // x, front
4073 images/processedp1.pcx 498 67 01 27 40 -8 -8 // y, back
4074 images/processedp1.pcx 498 99 01 27 40 -8 -8 // y, front

4075 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

4076 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

4077 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

4078 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

4079 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

4080 * 35	 02 04 14 // ID
0E 01
\w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6 \w6
\w6

4081 * 35	 02 04 15 // ID
0E 01
\w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6
\w6

4082 * 35	 02 04 16 // ID
0E 01
\w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6
\w6

4083 * 35	 02 04 17 // ID
0E 01
\w0 \w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5
\w6

4084 * 15	 02 04 01 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0014
\wx0015
\wx0016
\wx0017

4085 * 35	 02 04 18 // ID
0E 01
\w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9 \w9
\w9

4086 * 35	 02 04 19 // ID
0E 01
\w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9
\w9

4087 * 35	 02 04 1A // ID
0E 01
\w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9
\w9

4088 * 35	 02 04 1B // ID
0E 01
\w0 \w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8
\w9

4089 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0018
\wx0019
\wx001A
\wx001B

4090 * 35	 02 04 1C // ID
0E 01
\w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12 \w12
\w12

4091 * 35	 02 04 1D // ID
0E 01
\w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12
\w12

4092 * 35	 02 04 1E // ID
0E 01
\w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12
\w12

4093 * 35	 02 04 1F // ID
0E 01
\w0 \w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11
\w12

4094 * 15	 02 04 03 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx001C
\wx001D
\wx001E
\wx001F

4095 * 15	 02 04 20 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx0000
\wx0001
\wx0002
\wx0003

4096 * 7	 02 04 21 // ID
00 01
\w0

4097 * 142	 00 04 06 01 5A
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842D \wx0004 // cargo
00 00 03 // x/y/z offset
10 04 0A // x/y/z extent
12 // register
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000842E \wx0004 // cargo
00 0C 03 // x/y/z offset
10 04 0A // x/y/z extent
12 // register

// 01 (y)
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000842F \wx0004 // cargo
00 00 03 // x/y/z offset
04 10 0A // x/y/z extent
12 // register
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80008430 \wx0004 // cargo
0C 00 03 // x/y/z offset
04 10 0A // x/y/z extent
12 // register

0B 02 // use callback to determine layout

10 \w600 // set little/lots threshold

12 \dx00000200 // cargo types for randomisation triggers (steel)

11 FF // pylon placement (all)

// Real sprites
4098 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx0020 // copper/steel sprites

// Real sprites - empty
4099 * 14	 02 04 24 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx0021 // copper/steel sprites - empty

//@@WARNING DISABLE 100

4100 * 28	 02 04 15 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w14 // add offset of recolour sprite for steel
\2sto 1A
00 \wx0012 // store in register - recolour offset
01
\wx0023 \w0 \w0
\wx0023

// Empty
4101 * 28	 02 04 16 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w14 // add offset of recolour sprite for steel
\2sto 1A
00 \wx0012 // store in register - recolour offset
01
\wx0024 \w0 \w0
\wx0024

//@@WARNING ENABLE 100

4102 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4103 * 39	 02 04 09 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016

//@@WARNING ENABLE 113

// No suitable cargo
4104 * 14	 02 04 07 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

4105 * 13	 03 04
01 5A
02
09 \wx0006 // steel
FF \wx0006 // purchase
\wx0007 // no suitable cargo

// Copper/steel non-track sprites
4106 * 4	 01 04 0D 01
4107 images/processedt1.pcx 4 4 01 1 1 0 0 // empty

4108 images/processedt1.pcx 4 4 01 37 58 -28 -8 // level 1
4109 images/processedt1.pcx 66 4 01 37 58 -28 -8 // level 2
4110 images/processedt1.pcx 128 4 01 37 58 -28 -8 // level 3

4111 images/processedt1.pcx 4 45 01 37 58 -28 -8 // level 1
4112 images/processedt1.pcx 66 45 01 37 58 -28 -8 // level 2
4113 images/processedt1.pcx 128 45 01 37 58 -28 -8 // level 3

4114 images/processedt1.pcx 4 86 01 37 58 -28 -8 // level 1
4115 images/processedt1.pcx 66 86 01 37 58 -28 -8 // level 2
4116 images/processedt1.pcx 128 86 01 37 58 -28 -8 // level 3

4117 images/processedt1.pcx 4 127 01 37 58 -28 -8 // level 1
4118 images/processedt1.pcx 66 127 01 37 58 -28 -8 // level 2
4119 images/processedt1.pcx 128 127 01 37 58 -28 -8 // level 3

4120 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

4121 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

4122 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

4123 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

4124 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

4125 * 35	 02 04 14 // ID
0E 01
\w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6 \w6
\w6

4126 * 35	 02 04 15 // ID
0E 01
\w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6
\w6

4127 * 35	 02 04 16 // ID
0E 01
\w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6
\w6

4128 * 35	 02 04 17 // ID
0E 01
\w0 \w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5
\w6

4129 * 15	 02 04 01 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0014
\wx0015
\wx0016
\wx0017

4130 * 35	 02 04 18 // ID
0E 01
\w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9 \w9
\w9

4131 * 35	 02 04 19 // ID
0E 01
\w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9
\w9

4132 * 35	 02 04 1A // ID
0E 01
\w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9
\w9

4133 * 35	 02 04 1B // ID
0E 01
\w0 \w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8
\w9

4134 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0018
\wx0019
\wx001A
\wx001B

4135 * 35	 02 04 1C // ID
0E 01
\w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12 \w12
\w12

4136 * 35	 02 04 1D // ID
0E 01
\w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12
\w12

4137 * 35	 02 04 1E // ID
0E 01
\w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12
\w12

4138 * 35	 02 04 1F // ID
0E 01
\w0 \w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11
\w12

4139 * 15	 02 04 03 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx001C
\wx001D
\wx001E
\wx001F

4140 * 15	 02 04 22 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx0000
\wx0001
\wx0002
\wx0003

// Empty tile
4141 * 7	 02 04 23 // ID
00 01
\w0

4142 * 90	 00 04 08 01 5B
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0004
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent
12 // registers

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0004
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent
12 // registers

0B 02 // use callback to determine layout

10 \w900 // set little/lots threshold

12 \dx00000200 // cargo types for randomisation triggers (steel)

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
4143 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0022 // copper/steel sprites

// Test variable 10 for real sprites - empty
4144 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0023 // copper/steel sprites - empty

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4145 * 39	 02 04 15 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w14 // add offset of recolour sprite for steel
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
4146 * 39	 02 04 16 // ID
85
7F 10 // read parameter for recolour sprite base
20 \wx7FFF
\2+
1A // all bits on
20 \w14 // add offset of recolour sprite for steel
\2sto 1A
20 \wx0012 // store in register - recolour offset
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4147 * 14	 02 04 09 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4148 * 39	 02 04 0A // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016

//@@WARNING ENABLE 113

// No suitable cargo
4149 * 14	 02 04 0B // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000A // real sprites

4150 * 13	 03 04
01 5B
02
09 \wx0009 // steel
FF \wx0009 // purchase
\wx000B // no suitable cargo

4151 * 138	 00 04 06 01 5C
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042D \wx0000 // cargo
00 00 03 // x/y/z offset
10 04 0A // x/y/z extent
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042E \wx0000 // cargo
00 0C 03 // x/y/z offset
10 04 0A // x/y/z extent

// 01 (y)
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000042F \wx0000 // cargo
00 00 03 // x/y/z offset
04 10 0A // x/y/z extent
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000430 \wx0000 // cargo
0C 00 03 // x/y/z offset
04 10 0A // x/y/z extent

0B 02 // use callback to determine layout

10 \w600 // set little/lots threshold

12 \dx10000020 // cargo types for randomisation triggers

11 FF // pylon placement (all)

// Real sprites
4152 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx0020 // copper/steel sprites

// Real sprites - empty
4153 * 14	 02 04 24 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx0021 // copper/steel sprites

4154 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0023 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4155 * 39	 02 04 09 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024

//@@WARNING ENABLE 113

// No suitable cargo
4156 * 14	 02 04 07 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

4157 * 9	 07 8B 04 \7c "COPR" 02 // if copper is not available skip

4158 * 13	 03 04
01 5C
02
1C \wx0006 // copper
FF \wx0006 // purchase
\wx0007 // no suitable cargo

4159 * 6	 07 9A 01 \71 00 01 // skip 1

4160 * 13	 03 04
01 5C
02
05 \wx0006 // goods
FF \wx0006 // purchase
\wx0007 // no suitable cargo

4161 * 88	 00 04 08 01 5D
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent

0B 02 // use callback to determine layout

10 \w900 // set little/lots threshold

12 \dx10000020 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
4162 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0022 // copper/steel sprites

// Test variable 10 for real sprites - empty
4163 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0023 // copper/steel sprites - empty

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4164 * 23	 02 04 15 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
4165 * 23	 02 04 16 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4166 * 14	 02 04 09 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4167 * 39	 02 04 0A // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016

//@@WARNING ENABLE 113

// No suitable cargo
4168 * 14	 02 04 0B // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000A // real sprites

4169 * 9	 07 8B 04 \7c "COPR" 02 // if copper is not available skip

4170 * 13	 03 04
01 5D
02
1C \wx0009 // copper
FF \wx0009 // purchase
\wx000B // no suitable cargo

4171 * 6	 07 9A 01 \71 00 01 // skip 1

4172 * 13	 03 04
01 5D
02
05 \wx0009 // goods
FF \wx0009 // purchase
\wx000B // no suitable cargo

4173 * 24	 00 04 06 01 5E
08 "ISRP"

0A 5C // copy sprite layout

0B 02 // use callback to determine layout

10 \w600 // set little/lots threshold

12 \dx04018028 // cargo types for randomisation triggers

11 FF // pylon placement (all)

// Real sprites
4174 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00E0 // barrel sprites

// Real sprites - empty
4175 * 14	 02 04 24 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00DF // barrel sprites

4176 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0023 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4177 * 39	 02 04 09 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024

//@@WARNING ENABLE 113

// No suitable cargo
4178 * 14	 02 04 07 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

4179 * 46	 03 04
01 5E
0D
03 \wx0006 // oil
05 \wx0006 // goods
0F \wx0006 // water
10 \wx0006 // rubber
1A \wx0006 // petrol
24 \wx0006 // fertiliser
25 \wx0006 // dyes
26 \wx0006 // refined products
27 \wx0006 // plastic
29 \wx0006 // alcohol
2D \wx0006 // farm supplies
2F \wx0006 // milk
FF \wx0006 // purchase list
\wx0007 // no suitable cargo

4180 * 190	 00 04 06 01 5F
08 "ISRP"

// Sprite layout
1A 04
// 00 (x)
43
\dx000003F4 \wx0002 // ground sprite - track
10 // register
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // barrels back
00 00 00 // x/y/z offset
10 04 0A // x/y/z extent
\dx8000042E \wx0000 // barrels front
00 0C 00 // x/y/z offset
10 04 0A // x/y/z extent

// 01 (y)
43
\dx000003F3 \wx0002 // ground sprite - track
10 // register
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // barrels back
00 00 00 // x/y/z offset
04 10 0A // x/y/z extent
\dx80000430 \wx0000 // barrels front
0C 00 00 // x/y/z offset
04 10 0A // x/y/z extent

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // barrels back
00 00 00 // x/y/z offset
10 04 0A // x/y/z extent
\dx8000042E \wx0000 // barrels front
00 0C 00 // x/y/z offset
10 04 0A // x/y/z extent

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042E \wx0040 // ground overlay (child) - platforms
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042F \wx0000 // barrels back
00 00 00 // x/y/z offset
04 10 0A // x/y/z extent
\dx80000430 \wx0000 // barrels front
0C 00 00 // x/y/z offset
04 10 0A // x/y/z extent

0B 02 // use callback to determine layout

10 \w600 // set little/lots threshold
12 \dx04018028 // cargo types for randomisation triggers

11 FF // pylon placement (all)

// Real sprites
4181 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E0 // barrel sprites

// Real sprites - empty
4182 * 14	 02 04 24 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00DF // barrel sprites - empty

//@@WARNING DISABLE 100

4183 * 29	 02 04 21 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0023 \w0 \w0
\wx0023

// Empty
4184 * 29	 02 04 22 // ID
85
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register
01
\wx0024 \w0 \w0
\wx0024

//@@WARNING ENABLE 100

4185 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

// Purchase
4186 * 14	 02 04 08 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx0023 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4187 * 39	 02 04 09 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
4188 * 14	 02 04 07 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

4189 * 46	 03 04
01 5F
0D
03 \wx0006 // oil
05 \wx0006 // goods
0F \wx0006 // water
10 \wx0006 // rubber
1A \wx0006 // petrol
24 \wx0006 // fertiliser
25 \wx0006 // dyes
26 \wx0006 // refined products
27 \wx0006 // plastic
29 \wx0006 // alcohol
2D \wx0006 // farm supplies
2F \wx0006 // milk
FF \wx0008 // purchase list
\wx0007 // no suitable cargo

4190 * 88	 00 04 08 01 60
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent

0B 02 // use callback to determine layout

10 \w900 // set little/lots threshold

12 \dx04018028 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

4191 * 4	 01 04 0D 01
4192 images/processedt1.pcx 4 171 01 1 1 0 0 // empty

4193 images/processedt1.pcx 4 171 01 37 56 -27 -8 // level 1
4194 images/processedt1.pcx 64 171 01 37 56 -27 -8 // level 2
4195 images/processedt1.pcx 124 171 01 37 56 -27 -8 // level 3

4196 images/processedt1.pcx 4 212 01 38 56 -27 -8 // level 1
4197 images/processedt1.pcx 64 212 01 38 56 -27 -8 // level 2
4198 images/processedt1.pcx 124 212 01 38 56 -27 -8 // level 3

4199 images/processedt1.pcx 4 253 01 37 56 -27 -8 // level 1
4200 images/processedt1.pcx 64 253 01 37 56 -27 -8 // level 2
4201 images/processedt1.pcx 124 253 01 37 56 -27 -8 // level 3

4202 images/processedt1.pcx 4 294 01 37 56 -27 -8 // level 1
4203 images/processedt1.pcx 64 294 01 37 56 -27 -8 // level 2
4204 images/processedt1.pcx 124 294 01 37 56 -27 -8 // level 3

4205 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

4206 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

4207 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

4208 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

4209 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

4210 * 35	 02 04 14 // ID
0E 01
\w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6 \w6
\w6

4211 * 35	 02 04 15 // ID
0E 01
\w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6
\w6

4212 * 35	 02 04 16 // ID
0E 01
\w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6
\w6

4213 * 35	 02 04 17 // ID
0E 01
\w0 \w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5
\w6

4214 * 15	 02 04 01 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0014
\wx0015
\wx0016
\wx0017

4215 * 35	 02 04 18 // ID
0E 01
\w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9 \w9
\w9

4216 * 35	 02 04 19 // ID
0E 01
\w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9
\w9

4217 * 35	 02 04 1A // ID
0E 01
\w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9
\w9

4218 * 35	 02 04 1B // ID
0E 01
\w0 \w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8
\w9

4219 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0018
\wx0019
\wx001A
\wx001B

4220 * 35	 02 04 1C // ID
0E 01
\w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12 \w12
\w12

4221 * 35	 02 04 1D // ID
0E 01
\w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12
\w12

4222 * 35	 02 04 1E // ID
0E 01
\w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12
\w12

4223 * 35	 02 04 1F // ID
0E 01
\w0 \w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11
\w12

4224 * 15	 02 04 03 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx001C
\wx001D
\wx001E
\wx001F

4225 * 15	 02 04 04 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx0000
\wx0001
\wx0002
\wx0003

// Empty tile
4226 * 7	 02 04 05 // ID
00 01
\w0

// Test variable 10 for real sprites
4227 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0004 // barrel sprites

// Test variable 10 for real sprites - empty
4228 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0005 // barrel sprites - empty

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4229 * 23	 02 04 15 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
4230 * 23	 02 04 16 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4231 * 14	 02 04 09 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4232 * 39	 02 04 0A // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016

//@@WARNING ENABLE 113

// No suitable cargo
4233 * 14	 02 04 0B // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000A // real sprites

4234 * 46	 03 04
01 60
0D
03 \wx0009 // oil
05 \wx0009 // goods
0F \wx0009 // water
10 \wx0009 // rubber
1A \wx0009 // petrol
24 \wx0009 // fertiliser
25 \wx0009 // dyes
26 \wx0009 // refined products
27 \wx0009 // plastic
29 \wx0009 // alcohol
2D \wx0009 // farm supplies
2F \wx0009 // milk
FF \wx0009 // purchase list
\wx000B // no suitable cargo

4235 * 138	 00 04 06 01 61
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042D \wx0000 // cargo
00 00 03 // x/y/z offset
10 03 0A // x/y/z extent
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042E \wx0000 // cargo
00 0D 03 // x/y/z offset
10 03 0A // x/y/z extent

// 01 (y)
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000042F \wx0000 // cargo
00 00 03 // x/y/z offset
03 10 0A // x/y/z extent
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000430 \wx0000 // cargo
0D 00 03 // x/y/z offset
03 10 0A // x/y/z extent

0B 02 // use callback to determine layout

10 \w600 // set little/lots threshold

12 \dx28000020 // cargo types for randomisation triggers

11 FF // pylon placement (all)

4236 * 4	 01 04 0D 04
// Empty
4237 images/processedp1.pcx 3 264 01 1 1 0 0 // x, back
4238 images/processedp1.pcx 3 264 01 1 1 0 0 // x, front
4239 images/processedp1.pcx 3 264 01 1 1 0 0 // y, back
4240 images/processedp1.pcx 3 264 01 1 1 0 0 // y, front
// Type 1 - level 1
4241 images/processedp1.pcx 3 264 01 27 34 -28 -10 // x, back
4242 images/processedp1.pcx 3 294 01 27 34 -28 -10 // x, front
4243 images/processedp1.pcx 3 324 01 27 34 -4 -10 // y, back
4244 images/processedp1.pcx 3 354 01 27 34 -4 -10 // y, front
// Type 1 - level 2
4245 images/processedp1.pcx 43 264 01 27 34 -28 -10 // x, back
4246 images/processedp1.pcx 43 294 01 27 34 -28 -10 // x, front
4247 images/processedp1.pcx 43 324 01 27 34 -4 -10 // y, back
4248 images/processedp1.pcx 43 354 01 27 34 -4 -10 // y, front
// Type 1 - level 3
4249 images/processedp1.pcx 83 264 01 27 34 -28 -10 // x, back
4250 images/processedp1.pcx 83 294 01 27 34 -28 -10 // x, front
4251 images/processedp1.pcx 83 324 01 27 34 -4 -10 // y, back
4252 images/processedp1.pcx 83 354 01 27 34 -4 -10 // y, front
// Type 2 - level 1
4253 images/processedp1.pcx 123 264 01 27 34 -28 -10 // x, back
4254 images/processedp1.pcx 123 294 01 27 34 -28 -10 // x, front
4255 images/processedp1.pcx 123 324 01 27 34 -4 -10 // y, back
4256 images/processedp1.pcx 123 354 01 27 34 -4 -10 // y, front
// Type 2 - level 2
4257 images/processedp1.pcx 163 264 01 27 34 -28 -10 // x, back
4258 images/processedp1.pcx 163 294 01 27 34 -28 -10 // x, front
4259 images/processedp1.pcx 163 324 01 27 34 -4 -10 // y, back
4260 images/processedp1.pcx 163 354 01 27 34 -4 -10 // y, front
// Type 2 - level 3
4261 images/processedp1.pcx 203 264 01 27 34 -28 -10 // x, back
4262 images/processedp1.pcx 203 294 01 27 34 -28 -10 // x, front
4263 images/processedp1.pcx 203 324 01 27 34 -4 -10 // y, back
4264 images/processedp1.pcx 203 354 01 27 34 -4 -10 // y, front
// Type 3 - level 1
4265 images/processedp1.pcx 243 264 01 27 34 -28 -10 // x, back
4266 images/processedp1.pcx 243 294 01 27 34 -28 -10 // x, front
4267 images/processedp1.pcx 243 324 01 27 34 -4 -10 // y, back
4268 images/processedp1.pcx 243 354 01 27 34 -4 -10 // y, front
// Type 3 - level 2
4269 images/processedp1.pcx 283 264 01 27 34 -28 -10 // x, back
4270 images/processedp1.pcx 283 294 01 27 34 -28 -10 // x, front
4271 images/processedp1.pcx 283 324 01 27 34 -4 -10 // y, back
4272 images/processedp1.pcx 283 354 01 27 34 -4 -10 // y, front
// Type 3 - level 3
4273 images/processedp1.pcx 323 264 01 27 34 -28 -10 // x, back
4274 images/processedp1.pcx 323 294 01 27 34 -28 -10 // x, front
4275 images/processedp1.pcx 323 324 01 27 34 -4 -10 // y, back
4276 images/processedp1.pcx 323 354 01 27 34 -4 -10 // y, front
// Type 4 - level 1
4277 images/processedp1.pcx 363 264 01 28 34 -28 -10 // x, back
4278 images/processedp1.pcx 363 294 01 27 34 -28 -10 // x, front
4279 images/processedp1.pcx 363 324 01 27 34 -4 -10 // y, back
4280 images/processedp1.pcx 363 354 01 27 34 -4 -10 // y, front
// Type 4 - level 2
4281 images/processedp1.pcx 403 264 01 28 34 -28 -10 // x, back
4282 images/processedp1.pcx 403 294 01 27 34 -28 -10 // x, front
4283 images/processedp1.pcx 403 324 01 27 34 -4 -10 // y, back
4284 images/processedp1.pcx 403 354 01 27 34 -4 -10 // y, front
// Type 4 - level 3
4285 images/processedp1.pcx 443 264 01 28 34 -28 -10 // x, back
4286 images/processedp1.pcx 443 294 01 27 34 -28 -10 // x, front
4287 images/processedp1.pcx 443 324 01 27 34 -4 -10 // y, back
4288 images/processedp1.pcx 443 354 01 27 34 -4 -10 // y, front

4289 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

4290 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

4291 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

4292 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

4293 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

4294 * 35	 02 04 14 // ID
0E 01
\w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6 \w6
\w6

4295 * 35	 02 04 15 // ID
0E 01
\w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6
\w6

4296 * 35	 02 04 16 // ID
0E 01
\w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6
\w6

4297 * 35	 02 04 17 // ID
0E 01
\w0 \w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5
\w6

4298 * 15	 02 04 01 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0014
\wx0015
\wx0016
\wx0017

4299 * 35	 02 04 18 // ID
0E 01
\w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9 \w9
\w9

4300 * 35	 02 04 19 // ID
0E 01
\w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9
\w9

4301 * 35	 02 04 1A // ID
0E 01
\w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9
\w9

4302 * 35	 02 04 1B // ID
0E 01
\w0 \w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8
\w9

4303 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0018
\wx0019
\wx001A
\wx001B

4304 * 35	 02 04 1C // ID
0E 01
\w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12 \w12
\w12

4305 * 35	 02 04 1D // ID
0E 01
\w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12
\w12

4306 * 35	 02 04 1E // ID
0E 01
\w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12
\w12

4307 * 35	 02 04 1F // ID
0E 01
\w0 \w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11
\w12

4308 * 15	 02 04 03 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx001C
\wx001D
\wx001E
\wx001F

4309 * 15	 02 04 04 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx0000
\wx0001
\wx0002
\wx0003

4310 * 7	 02 04 05 // ID
00 01
\w0

// Real sprites
4311 * 14	 02 04 23 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx0004 // plank sprites

// Real sprites - empty
4312 * 14	 02 04 24 // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx0005 // plank sprites

4313 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0023 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4314 * 39	 02 04 09 // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024
\wx0024

//@@WARNING ENABLE 113

// No suitable cargo
4315 * 14	 02 04 07 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0009 // real sprites

4316 * 9	 07 8B 04 \7C "BDMT" 02 // if building materials are available skip
4317 * 9	 07 8B 04 \7C "WDPR" 01 // if wood products are available skip
4318 * 9	 07 8B 04 \7c "LUMB" 02 // if lumber is not available skip

4319 * 19	 03 04
01 61
04
1B \wx0006 // wood products
1D \wx0006 // lumber
2A \wx0006 // building materials
FF \wx0006 // purchase
\wx0007 // no suitable cargo

4320 * 6	 07 9A 01 \71 00 01 // skip 1

4321 * 13	 03 04
01 61
02
05 \wx0006 // goods
FF \wx0006 // purchase
\wx0007 // no suitable cargo

4322 * 88	 00 04 08 01 62
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 0C // x/y/z extent

0B 02 // use callback to determine layout

10 \w900 // set little/lots threshold

12 \dx28000020 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

4323 * 4	 01 04 0D 01
4324 images/processedt1.pcx 4 338 01 1 1 0 0 // empty

4325 images/processedt1.pcx 4 338 01 39 58 -28 -9 // level 1
4326 images/processedt1.pcx 66 338 01 39 58 -28 -9 // level 2
4327 images/processedt1.pcx 128 338 01 39 58 -28 -9 // level 3

4328 images/processedt1.pcx 4 381 01 39 58 -28 -9 // level 1
4329 images/processedt1.pcx 66 381 01 39 58 -28 -9 // level 2
4330 images/processedt1.pcx 128 381 01 39 58 -28 -9 // level 3

4331 images/processedt1.pcx 4 424 01 39 58 -28 -9 // level 1
4332 images/processedt1.pcx 66 424 01 39 58 -28 -9 // level 2
4333 images/processedt1.pcx 128 424 01 39 58 -28 -9 // level 3

4334 images/processedt1.pcx 4 467 01 39 58 -28 -9 // level 1
4335 images/processedt1.pcx 66 467 01 39 58 -28 -9 // level 2
4336 images/processedt1.pcx 128 467 01 39 58 -28 -9 // level 3

4337 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

4338 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

4339 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

4340 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

4341 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

4342 * 35	 02 04 14 // ID
0E 01
\w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6 \w6
\w6

4343 * 35	 02 04 15 // ID
0E 01
\w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6
\w6

4344 * 35	 02 04 16 // ID
0E 01
\w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6
\w6

4345 * 35	 02 04 17 // ID
0E 01
\w0 \w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5
\w6

4346 * 15	 02 04 01 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0014
\wx0015
\wx0016
\wx0017

4347 * 35	 02 04 18 // ID
0E 01
\w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9 \w9
\w9

4348 * 35	 02 04 19 // ID
0E 01
\w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9
\w9

4349 * 35	 02 04 1A // ID
0E 01
\w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9
\w9

4350 * 35	 02 04 1B // ID
0E 01
\w0 \w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8
\w9

4351 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0018
\wx0019
\wx001A
\wx001B

4352 * 35	 02 04 1C // ID
0E 01
\w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12 \w12
\w12

4353 * 35	 02 04 1D // ID
0E 01
\w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12
\w12

4354 * 35	 02 04 1E // ID
0E 01
\w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12
\w12

4355 * 35	 02 04 1F // ID
0E 01
\w0 \w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11
\w12

4356 * 15	 02 04 03 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx001C
\wx001D
\wx001E
\wx001F

4357 * 15	 02 04 04 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx0000
\wx0001
\wx0002
\wx0003

// Empty tile
4358 * 7	 02 04 05 // ID
00 01
\w0

// Test variable 10 for real sprites
4359 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0004 // plank sprites

// Test variable 10 for real sprites - empty
4360 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx0005 // plank sprites - empty

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4361 * 23	 02 04 15 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

4362 * 23	 02 04 16 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4363 * 14	 02 04 09 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4364 * 39	 02 04 0A // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016
\wx0016

//@@WARNING ENABLE 113

// No suitable cargo
4365 * 14	 02 04 0B // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000A // real sprites

4366 * 9	 07 8B 04 \7C "BDMT" 02 // if building materials are available skip
4367 * 9	 07 8B 04 \7C "WDPR" 01 // if wood products are available skip
4368 * 9	 07 8B 04 \7c "LUMB" 02 // if lumber is not available skip

4369 * 19	 03 04
01 62
04
1B \wx0009 // wood products
1D \wx0009 // lumber
2A \wx0009 // building materials
FF \wx0009 // purchase
\wx000B // no suitable cargo

4370 * 6	 07 9A 01 \71 00 01 // skip 1

4371 * 13	 03 04
01 62
02
05 \wx0009 // goods
FF \wx0009 // purchase
\wx000B // no suitable cargo
4372 * 142	 00 04 06 01 63
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
44
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // platform back
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042D \wx0002 // paper back
00 00 03 // x/y/z offset
10 03 0A // x/y/z extent
11 // register
\dx8000042E \wx0040 // platform front
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042D \wx0002 // paper front
00 0D 03 // x/y/z offset
10 03 0A // x/y/z extent
12 // register

// 01 (y)
44
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // platform back
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000431 \wx0002 // paper back
00 00 03 // x/y/z offset
03 10 0A // x/y/z extent
11 // register
\dx80000430 \wx0040 // platform front
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000431 \wx0002 // paper front
0D 00 03 // x/y/z offset
03 10 0A // x/y/z extent
12 // register

0B 02 // use callback for sprite layout

10 \w600 // set little/lots threshold
12 \dx00000800 // cargo types for randomisation triggers

11 FF // pylons (all)

// Real sprites

// Test variable 10 for real sprites
4373 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00E4 // paper sprites

// Test variable 10 for real sprites - no paper
4374 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00E3 // paper sprites - empty

// Select paper variety back
4375 * 15	 02 04 40 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8003
\wx8000
\wx8001
\wx8002

// Select paper variety front
4376 * 15	 02 04 41 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8000
\wx8001
\wx8002
\wx8003

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4377 * 34	 02 04 20 // ID
85
7E 40 // get random paper variety offset
20 \wx00FF
\2sto 1A
20 \wx0011 // store in register
\2rst
7E 41 // get random paper variety offset
20 \wx00FF
\2sto 1A
00 \wx0012 // store in register
01
\wx001B \w0 \w0
\wx001B

// Empty
4378 * 27	 02 04 22 // ID
85
1A
20 \w0 // paper variety
\2sto 1A
20 \wx0011 // store in register
\2sto 1A
00 \wx0012 // store in register
01
\wx001C \w0 \w0
\wx001C

// Purchase
4379 * 32	 02 04 21 // ID
85
1A
20 \w0 // paper variety
\2sto 1A
20 \wx0011 // store in register
\2rst 1A
20 \w1 // paper variety
\2sto 1A
00 \wx0012 // store in register
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4380 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites

// Purchase
4381 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4382 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
4383 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000B // real sprites

4384 * 13	 03 04
01 63
02
0B \wx0004 // paper
FF \wx0002 // purchase
\wx0003 // no suitable cargo

4385 * 168	 00 04 08 01 64
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
45
\dx00008F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0002 // paper
00 00 00 // x/y/z offset
10 03 0B // x/y/z extent
04 // register - sprite offset
\dx8000042D \wx0002 // paper
00 04 00 // x/y/z offset
10 03 0B // x/y/z extent
05 // register - sprite offset
\dx8000042D \wx0002 // paper
00 08 00 // x/y/z offset
10 03 0B // x/y/z extent
06 // register - sprite offset
\dx8000042D \wx0002 // paper
00 0C 00 // x/y/z offset
10 03 0B // x/y/z extent
07 // register - sprite offset

// 01 (y)
45
\dx00008F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80000431 \wx0002 // paper
00 00 00 // x/y/z offset
03 10 0B // x/y/z extent
04 // register - sprite offset
\dx80000431 \wx0002 // paper
04 00 00 // x/y/z offset
03 10 0B // x/y/z extent
05 // register - sprite offset
\dx80000431 \wx0002 // paper
08 00 00 // x/y/z offset
03 10 0B // x/y/z extent
06 // register - sprite offset
\dx80000431 \wx0002 // paper
0C 00 00 // x/y/z offset
03 10 0B // x/y/z extent
07 // register - sprite offset

0B 02 // use callback for sprite layout

10 \w900 // set little/lots threshold
12 \dx00000800 // cargo types for randomisation triggers

14 FF // wires (none)
11 00 // pylons (none)
15 FF // prevent trains entering the tile from any direction

// Real sprites

// Test variable 10 for real sprites
4386 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprite
\wx00E4 // paper sprites

// Empty
4387 * 14	 02 04 1C // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprite
\wx00E3 // paper sprites - empty

// Select paper variety back
4388 * 15	 02 04 40 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8000
\wx8001
\wx8002
\wx8003

// Select paper variety front
4389 * 15	 02 04 41 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8001
\wx8002
\wx8003
\wx8000

// Select paper variety front
4390 * 15	 02 04 42 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8002
\wx8003
\wx8000
\wx8001

// Select paper variety front
4391 * 15	 02 04 43 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx8003
\wx8000
\wx8001
\wx8002

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4392 * 67	 02 04 20 // ID
85
7E 40 // get random paper variety offset
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst
7E 41 // get random paper variety offset
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E 42 // get random paper variety offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register
\2rst
7E 43 // get random paper variety offset
20 \wx00FF
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Empty
4393 * 48	 02 04 22 // ID
85
1A
20 \w0 // paper variety
\2sto 1A
20 \wx0004 // store in register
\2sto 1A
20 \wx0005 // store in register
\2sto 1A
20 \wx0006 // store in register
\2sto 1A
20 \wx0007 // store in register
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001C \w0 \w0
\wx001C

// Purchase
4394 * 62	 02 04 21 // ID
85
1A
20 \w0 // paper variety
\2sto 1A
20 \wx0004 // store in register
\2rst 1A
20 \w1 // paper variety
\2sto 1A
20 \wx0005 // store in register
\2rst 1A
20 \w2 // paper variety
\2sto 1A
20 \wx0006 // store in register
\2rst 1A
20 \w3 // paper variety
\2sto 1A
20 \wx0007 // store in register
\2rst 1A
20 \wx0000
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4395 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0020 // real sprites

// Purchase
4396 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4397 * 39	 02 04 0B // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
4398 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000B // real sprites

4399 * 13	 03 04
01 64
02
0B \wx0004 // paper
FF \wx0002 // purchase
\wx0003 // no suitable cargo

4400 * 68	 00 04 08 01 65
08 "ISRP"

// Sprite layout
1A 02
// 00 (x)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 04 // x/y/z extent

// 01 (y)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 04 // x/y/z extent

0B 02 // use callback to determine layout

10 \w900 // set little/lots threshold
12 \dx00000020 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

4401 * 4	 01 04 0D 02
// Empty
4402 images/newcars.pcx 2 2 09 31 64 -31 0 // x, empty
4403 images/newcars.pcx 69 2 09 31 64 -31 0 // y, empty
// Type 1
4404 images/newcars.pcx 2 41 09 31 64 -31 0 // x, level 1
4405 images/newcars.pcx 2 155 09 31 64 -31 0 // y, level 1
4406 images/newcars.pcx 2 79 09 31 64 -31 0 // x, level 2
4407 images/newcars.pcx 2 193 09 31 64 -31 0 // y, level 2
4408 images/newcars.pcx 2 116 09 31 64 -31 0 // x, level 3
4409 images/newcars.pcx 2 231 09 31 64 -31 0 // y, level 3
// Type 2
4410 images/newcars.pcx 69 41 09 31 64 -31 0 // x, level 1
4411 images/newcars.pcx 69 155 09 31 64 -31 0 // y, level 1
4412 images/newcars.pcx 69 79 09 31 64 -31 0 // x, level 2
4413 images/newcars.pcx 69 193 09 31 64 -31 0 // y, level 2
4414 images/newcars.pcx 69 116 09 31 64 -31 0 // x, level 3
4415 images/newcars.pcx 69 231 09 31 64 -31 0 // y, level 3
// Type 3
4416 images/newcars.pcx 136 41 09 31 64 -31 0 // x, level 1
4417 images/newcars.pcx 136 155 09 31 64 -31 0 // y, level 1
4418 images/newcars.pcx 136 79 09 31 64 -31 0 // x, level 2
4419 images/newcars.pcx 136 193 09 31 64 -31 0 // y, level 2
4420 images/newcars.pcx 136 116 09 31 64 -31 0 // x, level 3
4421 images/newcars.pcx 136 231 09 31 64 -31 0 // y, level 3
// Type 4
4422 images/newcars.pcx 203 41 09 31 64 -31 0 // x, level 1
4423 images/newcars.pcx 203 155 09 31 64 -31 0 // y, level 1
4424 images/newcars.pcx 203 79 09 31 64 -31 0 // x, level 2
4425 images/newcars.pcx 203 193 09 31 64 -31 0 // y, level 2
4426 images/newcars.pcx 203 116 09 31 64 -31 0 // x, level 3
4427 images/newcars.pcx 203 231 09 31 64 -31 0 // y, level 3

4428 * 35	 02 04 10 // ID
0E 01
\w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3 \w3
\w3

4429 * 35	 02 04 11 // ID
0E 01
\w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3 \w3
\w3

4430 * 35	 02 04 12 // ID
0E 01
\w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2 \w3
\w3

4431 * 35	 02 04 13 // ID
0E 01
\w0 \w0 \w0 \w0 \w1 \w1 \w1 \w1 \w1 \w2 \w2 \w2 \w2 \w2
\w3

4432 * 15	 02 04 00 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0010
\wx0011
\wx0012
\wx0013

4433 * 35	 02 04 14 // ID
0E 01
\w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6 \w6
\w6

4434 * 35	 02 04 15 // ID
0E 01
\w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6 \w6
\w6

4435 * 35	 02 04 16 // ID
0E 01
\w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5 \w6
\w6

4436 * 35	 02 04 17 // ID
0E 01
\w0 \w0 \w0 \w0 \w4 \w4 \w4 \w4 \w4 \w5 \w5 \w5 \w5 \w5
\w6

4437 * 15	 02 04 01 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0014
\wx0015
\wx0016
\wx0017

4438 * 35	 02 04 18 // ID
0E 01
\w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9 \w9
\w9

4439 * 35	 02 04 19 // ID
0E 01
\w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9 \w9
\w9

4440 * 35	 02 04 1A // ID
0E 01
\w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8 \w9
\w9

4441 * 35	 02 04 1B // ID
0E 01
\w0 \w0 \w0 \w0 \w7 \w7 \w7 \w7 \w7 \w8 \w8 \w8 \w8 \w8
\w9

4442 * 15	 02 04 02 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx0018
\wx0019
\wx001A
\wx001B

4443 * 35	 02 04 1C // ID
0E 01
\w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12 \w12
\w12

4444 * 35	 02 04 1D // ID
0E 01
\w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12 \w12
\w12

4445 * 35	 02 04 1E // ID
0E 01
\w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11 \w12
\w12

4446 * 35	 02 04 1F // ID
0E 01
\w0 \w0 \w0 \w0 \w10 \w10 \w10 \w10 \w10 \w11 \w11 \w11 \w11 \w11
\w12

4447 * 15	 02 04 03 // ID
80
00 // no more cargo (triggered by random in graphics chain)
12 // use bits 18 and 19
04
\wx001C
\wx001D
\wx001E
\wx001F

4448 * 15	 02 04 04 // ID
80
00 // no more cargo (triggered by random in graphics chain)
10 // use bits 16 and 17
04
\wx0000
\wx0001
\wx0002
\wx0003

// No suitable cargo
4449 * 7	 02 04 05 // ID
00 01
\w0

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4450 * 23	 02 04 21 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0004 \w0 \w0
\wx0004

// Empty
4451 * 23	 02 04 22 // ID
85
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0005 \w0 \w0
\wx0005

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4452 * 14	 02 04 03 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

//@@WARNING DISABLE 113

// Random action 2 outside callback triggers re-randomisation
4453 * 39	 02 04 0A // ID
80
02 // no more cargo
10 // trigger bits 16 to 19
10
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
4454 * 14	 02 04 06 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx000A // real sprites

4455 * 9	 07 8B 04 \7c "VEHI" 02 // if vehicles are not available skip

4456 * 13	 03 04
01 65
02
23 \wx0003 // vehicles
FF \wx0003 // purchase
\wx0006 // no suitable cargo

4457 * 6	 07 9A 01 \71 00 01 // skip 1

4458 * 13	 03 04
01 65
02
05 \wx0003 // goods
FF \wx0003 // purchase
\wx0006 // no suitable cargo

// Facilities
4459 * 176	 00 04 06 01 66
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
46
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80008435 \wx0002 // office
00 00 03 // x/y/z offset
10 05 09 // x/y/z extent
05 // register
\dx80000447 \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000433 \wx0000 // platform steps (child)
0E 07 80 // x/y/z offset
\dx8000842D \wx0000 // lamp posts and sign
00 0C 03 // x/y/z offset
10 04 0D // x/y/z extent

// 01 (y)
46
\dx000003F3 \wx0000 // ground sprite
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80008436 \wx0002 // office
00 00 03 // x/y/z offset
05 10 09 // x/y/z extent
05 // register
\dx80000448 \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000434 \wx0000 // platform steps (child)
03 07 80 // x/y/z offset
\dx8000842E \wx0000 // lamp posts and sign
0C 00 03 // x/y/z offset
04 10 0D // x/y/z extent

0B 02 // use callback to determine layout

// Only allow a layout of 1 * 1
0C FE
0D FE

11 FF // pylon placement (all)

// Test variable 10 for real sprites
4460 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00EE // office sprites

4461 * 15	 02 04 05 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx8000
\wx8006
\wx800E
\wx8010

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4462 * 34	 02 04 15 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E 05 // get office variety offset
20 \wx00FF
\2sto 1A
00 \wx0005 // store in register
01
\wx001B \w0 \w0
\wx001B

// Purchase
4463 * 27	 02 04 16 // ID
85
1A // all bits on
20 \w0
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0005 // store in register - office variety
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4464 * 14	 02 04 01 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase list
4465 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4466 * 10	 03 04
01 66
01
FF \wx0003 // purchase
\wx0001

4467 * 176	 00 04 06 01 67
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
46
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80008437 \wx0002 // office
00 00 03 // x/y/z offset
10 05 0F // x/y/z extent
05 // register
\dx80000449 \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000433 \wx0000 // platform steps (child)
0E 07 80 // x/y/z offset
\dx8000842D \wx0000 // lamp posts and sign
00 0C 03 // x/y/z offset
10 04 0D // x/y/z extent

// 01 (y)
46
\dx000003F3 \wx0000 // ground sprite
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80008438 \wx0002 // office
00 00 03 // x/y/z offset
05 10 0F // x/y/z extent
05 // register
\dx8000044A \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000434 \wx0000 // platform steps (child)
03 07 80 // x/y/z offset
\dx8000842E \wx0000 // lamp posts and sign
0C 00 03 // x/y/z offset
04 10 0D // x/y/z extent

0B 03 // use callback to determine layout and availability

// Only allow a layout of 1 * 1
0C FE
0D FE

11 FF // pylon placement (all)

// Test variable 10 for real sprites
4468 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00EE // office sprites

4469 * 11	 02 04 05 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8006

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4470 * 34	 02 04 15 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E 05 // get office variety offset
20 \wx00FF
\2sto 1A
00 \wx0005 // store in register
01
\wx001B \w0 \w0
\wx001B

// Purchase
4471 * 27	 02 04 16 // ID
85
1A // all bits on
20 \w0
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0005 // store in register - office variety
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4472 * 14	 02 04 01 // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1949 // do not allow build before 1950
\wx8001

4473 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase list
4474 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx0001 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4475 * 10	 03 04
01 67
01
FF \wx0003 // purchase
\wx0002

4476 * 176	 00 04 06 01 68
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
46
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80008439 \wx0002 // office
00 00 03 // x/y/z offset
10 05 15 // x/y/z extent
05 // register
\dx8000044B \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000433 \wx0000 // platform steps (child)
0E 07 80 // x/y/z offset
\dx8000842D \wx0000 // lamp posts and sign
00 0C 03 // x/y/z offset
10 04 0D // x/y/z extent

// 01 (y)
46
\dx000003F3 \wx0000 // ground sprite
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000843A \wx0002 // office
00 00 03 // x/y/z offset
05 10 15 // x/y/z extent
05 // register
\dx8000044C \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000434 \wx0000 // platform steps (child)
03 07 80 // x/y/z offset
\dx8000842E \wx0000 // lamp posts and sign
0C 00 03 // x/y/z offset
04 10 0D // x/y/z extent

0B 03 // use callback to determine layout and availability

// Only allow a layout of 1 * 1
0C FE
0D FE

11 FF // pylon placement (all)

// Test variable 10 for real sprites
4477 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00EE // office sprites

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4478 * 34	 02 04 15 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E 05 // get office variety offset
20 \wx00FF
\2sto 1A
00 \wx0005 // store in register
01
\wx001B \w0 \w0
\wx001B

// Purchase
4479 * 27	 02 04 16 // ID
85
1A // all bits on
20 \w0
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0005 // store in register - office variety
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4480 * 14	 02 04 01 // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1979 // do not allow build before 1980
\wx8001

4481 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase list
4482 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx0001 13 13 // date availability
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4483 * 10	 03 04
01 68
01
FF \wx0003
\wx0002

4484 * 210	 00 04 06 01 69
08 "ISRF"

// Sprite layout
1A 04
// 00 (x)
44
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008435 \wx0002 // back platform office
00 00 00 // x/y/z offset
10 05 0B // x/y/z extent
05 // register
\dx80000447 \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx8000842F \wx0000 // front platform fence
03 0D 00 // x/y/z offset
0A 01 05 // x/y/z extent

// 01 (y)
44
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008436 \wx0002 // back platform office
00 00 00 // x/y/z offset
05 10 0B // x/y/z extent
05 // register
\dx80000448 \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx80008430 \wx0000 // front platform fence
0D 03 00 // x/y/z offset
01 0A 05 // x/y/z extent

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043B \wx0000 // back platform office
00 00 00 // x/y/z offset
10 05 0B // x/y/z extent
\dx8000842F \wx0000 // front platform fence
03 0D 00 // x/y/z offset
0A 01 05 // x/y/z extent

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000043C \wx0000 // back platform office
00 00 00 // x/y/z offset
05 10 0B // x/y/z extent
\dx80008430 \wx0000 // front platform fence
0D 03 00 // x/y/z offset
01 0A 05 // x/y/z extent

0B 02 // use callback to determine layout

// Only allow a layout of 1 * 1
0C FE
0D FE

11 FF // pylon placement (all)

// Test variable 10 for real sprites
4485 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00EE // office sprites

4486 * 15	 02 04 05 // ID
80
00 // don't re-randomise
10 // use bits 16 and 17
04
\wx8000
\wx8006
\wx800E
\wx8010

//@@WARNING DISABLE 100

4487 * 51	 02 04 15 // ID
85
7E 05 // get office variety offset
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

4488 * 14	 02 04 01 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase list
4489 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

4490 * 10	 03 04
01 69
01
FF \wx0003 // purchase
\wx0001

4491 * 210	 00 04 06 01 6A
08 "ISRF"

// Sprite layout
1A 04
// 00 (x)
44
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008437 \wx0002 // back platform office
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent
05 // register
\dx80000449 \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx8000842F \wx0000 // front platform fence
03 0D 00 // x/y/z offset
0A 01 05 // x/y/z extent

// 01 (y)
44
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008438 \wx0002 // back platform office
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent
05 // register
\dx8000044A \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx80008430 \wx0000 // front platform fence
0D 03 00 // x/y/z offset
01 0A 05 // x/y/z extent

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843D \wx0000 // back platform office
00 00 00 // x/y/z offset
10 05 0D // x/y/z extent
\dx8000842F \wx0000 // front platform fence
03 0D 00 // x/y/z offset
0A 01 05 // x/y/z extent

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843E \wx0000 // back platform office
00 00 00 // x/y/z offset
05 10 0D // x/y/z extent
\dx80008430 \wx0000 // front platform fence
0D 03 00 // x/y/z offset
01 0A 05 // x/y/z extent

0B 03 // use callback to determine layout and availability

// Only allow a layout of 1 * 1
0C FE
0D FE

11 FF // pylon placement (all)

// Test variable 10 for real sprites
4492 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00EE // office sprites

4493 * 11	 02 04 05 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8006

//@@WARNING DISABLE 100

4494 * 51	 02 04 15 // ID
85
7E 05 // get office variety offset
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

4495 * 14	 02 04 01 // ID
81 01 // current year
00 FF
01
\wx8000 00 \b1949 // do not allow build before 1950
\wx8001

4496 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase list
4497 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx0001 13 13 // date availability
\wx8002 14 14 // sprite layout
\wx001B // real sprites

4498 * 10	 03 04
01 6A
01
FF \wx0003 // purchase
\wx0002

4499 * 210	 00 04 06 01 6B
08 "ISRF"

// Sprite layout
1A 04
// 00 (x)
44
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008439 \wx0002 // back platform office
00 00 00 // x/y/z offset
10 05 15 // x/y/z extent
05 // register
\dx8000044B \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx8000842F \wx0000 // front platform fence
03 0D 00 // x/y/z offset
0A 01 05 // x/y/z extent

// 01 (y)
44
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843A \wx0002 // back platform office
00 00 00 // x/y/z offset
05 10 15 // x/y/z extent
05 // register
\dx8000044C \wx0003 // office snow
00 00 80 // x/y/z offset
03 05 // registers
\dx80008430 \wx0000 // front platform fence
0D 03 00 // x/y/z offset
01 0A 05 // x/y/z extent

// 02 (x) - purchase
43
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000843F \wx0000 // back platform office
00 00 00 // x/y/z offset
10 05 12 // x/y/z extent
\dx8000842F \wx0000 // front platform fence
03 0D 00 // x/y/z offset
0A 01 05 // x/y/z extent

// 03 (y) - purchase
43
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx80008440 \wx0000 // back platform office
00 00 00 // x/y/z offset
05 10 12 // x/y/z extent
\dx80008430 \wx0000 // front platform fence
0D 03 00 // x/y/z offset
01 0A 05 // x/y/z extent

0B 03 // use callback to determine layout and availability

// Only allow a layout of 1 * 1
0C FE
0D FE

11 FF // pylon placement (all)

// Test variable 10 for real sprites
4500 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00EE // office sprites

//@@WARNING DISABLE 100

4501 * 51	 02 04 15 // ID
85
7E 05 // get office variety offset
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

4502 * 14	 02 04 01 // ID
81 01 // current year
00 FF
01
\wx8000 \b0 \b1979 // do not allow build before 1980
\wx8001

4503 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase list
4504 * 18	 02 04 03 // ID
81 0C // callback
00 FF
02
\wx0001 13 13 // date availability
\wx8002 14 14 // sprite layout
\wx001B // real sprites

4505 * 10	 03 04
01 6B
01
FF \wx0003 // purchase
\wx0002

4506 * 183	 00 04 0C 01 6C
08 "ISRF"

// Sprite layout
1A 04
// 00 (x) - northern section
42
\dx000003F4 \wx0000 // ground sprite
\dx8000842D \wx0000 // building
00 00 00 // x/y/z offset
10 10 10 // x/y/z extent
\dx80000431 \wx0001 // building snow
00 00 80 // x/y/z offset
03 // registers

// 01 (y) - northern section
42
\dx000003F3 \wx0000 // ground sprite
\dx8000842F \wx0000 // building
00 00 00 // x/y/z offset
10 10 10 // x/y/z extent
\dx80000433 \wx0001 // building snow
14 00 80 // x/y/z offset
03 // registers

// 02 (x) - southern section
43
\dx000003F4 \wx0000 // ground sprite
\dx8000842E \wx0000 // building
00 00 00 // x/y/z offset
10 10 22 // x/y/z extent
\dx80000432 \wx0001 // building snow
00 00 80 // x/y/z offset
03 // registers
\dx8000842D \wx0042 // flag
0E 04 23 // x/y/z offset
01 02 0F // x/y/z extent
0A // register
05 // value for variable 10

// 03 (y) - southern section
43
\dx000003F3 \wx0000 // ground sprite
\dx80008430 \wx0000 // building
00 00 00 // x/y/z offset
10 10 22 // x/y/z extent
\dx80000434 \wx0001 // building snow
14 00 80 // x/y/z offset
03 // registers
\dx8000842D \wx0042 // flag
04 0F 23 // x/y/z offset
01 02 0F // x/y/z extent
0A // register
05 // value for variable 10

// Only allow a 2 x 1 layout
0C FE
0D FD

// Station layout
0E
02 01 00 02
00 00

0B 02 // use callback to determine layout

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

16 \wx0107 // animation info 8 frames looping
17 03 // animation speed 2^3 ticks per frame
18 \wx0001 // animation triggers - build (1)

4507 * 4	 01 04 01 08
4508 images/newfacilities5.pcx 5 100 09 45 65 -32 -14 // 042D x, northern part
4509 images/newfacilities5.pcx 73 100 09 54 64 -31 -23 // 042E x, southern part
4510 images/newfacilities5.pcx 141 100 09 45 65 -31 -14 // 042F y, northern part
4511 images/newfacilities5.pcx 209 100 09 54 64 -31 -23 // 0430 y, southern part
4512 images/newfacilities5.pcx 5 819 01 23 45 0 0 // 0431 x, N part snow
4513 images/newfacilities5.pcx 55 819 01 27 44 0 0 // 0432 x, S part snow
4514 images/newfacilities5.pcx 104 819 01 23 45 0 0 // 0433 y, N part snow
4515 images/newfacilities5.pcx 154 819 01 27 44 0 0 // 0434 y, S part snow

4516 * 7	 02 04 00 // ID
00 01
\w0

// Test variable 10 for real sprites
4517 * 14	 02 04 0B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00D3 05 05 // flag sprites
\wx0000 // office sprites

// Animation control start/stop
// Check this is an animated tile
4518 * 18	 02 04 22 // ID
85 68 00 // station info param 0/0; check this tile
00 \wx3000
01
\wx80FD \w0 \w0 // part #00/01
\wx80FE // part #02/03 - start animation

4519 * 14	 02 04 21 // ID
81 18 // extra callback info - reason for call
00 FF
01
\wx0022 00 00 // build station
\wx80FD // do nothing

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Northern part
4520 * 23	 02 04 17 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
00 \wx0003 // store in register - show/hide snow
01
\wx0000 \w0 \w0
\wx0000

// Southern part
4521 * 33	 02 04 18 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
4A // animation frame
20 \wx00FF
\2sto 1A
00 \wx000A // store in register - flag offset
01
\wx000B \w0 \w0
\wx000B

// Purchase - southern part
4522 * 27	 02 04 19 // ID
85
1A
20 \w0
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx000A // store in register - flag offset
01
\wx000B \w0 \w0
\wx000B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Test for tile part at current position
4523 * 18	 02 04 05 // ID
85 68 00 // station info param 0/0; check this tile
00 \wx3000
01
\wx0017 \w0 \w0 // part #00/01
\wx0018 // part #02/03

// Callback 14
// Test for tile part at current position
4524 * 18	 02 04 10 // ID
85 68 00 // station info param 0/0; check this tile
00 \wx3000
01
\wx8000 \w0 \w0 // part #00/01
\wx8002 // part #02/03

4525 * 23	 02 04 07 // ID
85 0C // callback
00 \wxFFFF
02
\wx0010 \wx0014 \wx0014 // sprite layout
\wx0021 \wx0140 \wx0140 // animation control
\wx0005 // real sprites

// For purchase list
4526 * 14	 02 04 08 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx0019 // real sprites

4527 * 10	 03 04
01 6C
01
FF \wx0008 // purchase
\wx0007

4528 * 150	 00 04 04 01 6D
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
45
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80008441 \wx0000 // shed
00 00 03 // x/y/z offset
10 05 0D // x/y/z extent
\dx80000453 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // registers
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000431 \wx0000 // lamp posts
00 0C 03 // x/y/z offset
10 04 0B // x/y/z extent

// 01 (y)
45
\dx000003F3 \wx0000 // ground sprite
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80008442 \wx0000 // shed
00 00 03 // x/y/z offset
05 10 0D // x/y/z extent
\dx80000454 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // registers
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000432 \wx0000 // lamp posts
0C 00 03 // x/y/z offset
04 10 0B // x/y/z extent

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

// Test variable 10 for real sprites
4529 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00EE // office sprites

//@@WARNING DISABLE 100

4530 * 23	 02 04 15 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
00 \wx0003 // store in register - show/hide snow
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

4531 * 14	 02 04 01 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

4532 * 7	 03 04
01 6D
00
\wx0001

4533 * 82	 00 04 07 01 6E
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx8000042F \wx0001 // snow
00 00 80 // x/y/z offset
03 // registers

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx80000430 \wx0001 // snow
00 00 80 // x/y/z offset
03 // registers

0B 02 // use callback to determine layout

0C FE // only allow a width of 1

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

4534 * 4	 01 04 02 04
4535 images/newfacilities5.pcx 72 207 01 44 64 -31 -13 // x, single
4536 images/newfacilities5.pcx 208 207 01 44 64 -31 -13 // y, single
4537 images/newfacilities5.pcx 65 914 01 20 39 16 0 // x, single snow
4538 images/newfacilities5.pcx 169 914 01 20 39 9 0 // y, single snow

4539 images/newfacilities5.pcx 5 207 01 44 64 -31 -13 // x, double
4540 images/newfacilities5.pcx 139 207 01 44 64 -31 -13 // y, double
4541 images/newfacilities5.pcx 5 914 01 28 55 0 0 // x, double snow
4542 images/newfacilities5.pcx 109 914 01 28 55 9 0 // y, double snow

4543 * 7	 02 04 00 // ID
00 01
\w0

4544 * 7	 02 04 01 // ID
00 01
\w1

4545 * 14	 02 04 02 // ID
81 41
04 0F // position along platform from south
01
\wx0000 00 00 // south tile - single shed
\wx0001 // double shed

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4546 * 34	 02 04 06 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0002 \w0 \w0
\wx0002

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4547 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0006 // real sprites

4548 * 7	 03 04
01 6E
00
\wx0003

// The following animation callback code is used for all
// warehouse door animations in facilities.nfo

// Calculate a_frame for reverse movement
4549 * 14	 02 04 50 // ID
81 1A // all bits on
20 09 // max_frame = 9
\2-
4A // animation frame
00 FF
00 // return a_frame = max_frame - frame
\wx8000

// Set a_frame to frame for forward movement
4550 * 10	 02 04 51 // ID
81 4A // animation frame
00 FF
00 // return a_frame = frame
\wx8000

// Select movement direction
4551 * 14	 02 04 52 // ID
81 4A // animation frame
00 FF
01
\wx0051 00 04 // frames 0 to 4
\wx0050 // frames 5 to max

// Hide door for frame 0
4552 * 15	 02 04 62 // ID
81
7E 52 // get a_frame
00 FF
01
\wx8000 00 00 // frame 0 - hide door
\wx8001 // show door

// Animation frame - maybe stop at open
4553 * 14	 02 04 54 // ID
81 10 // extra callback info - random bits
00 FF
01
\wx80FF 00 3F // 25% chance of stop
\wx80FE // continue

// Animation frame
4554 * 14	 02 04 55 // ID
81 4A // animation frame
00 FF
01
\wx0054 04 04 // maybe stop at open
\wx80FE // continue

// Animation control - at frame 9 - maybe start animation
4555 * 14	 02 04 56 // ID
81 10 // extra callback info - random bits
00 FF
01
\wx8000 00 3F // 25% chance of start (from frame 0)
\wx80FD // do nothing

// Animation control - at frame 4 - maybe restart animation
4556 * 14	 02 04 57 // ID
81 10 // extra callback info - random bits
00 FF
01
\wx80FE 00 3F // 25% chance of start (from current frame)
\wx80FD // do nothing

// Animation control - start animation
4557 * 18	 02 04 58 // ID
81 4A // animation frame
00 FF
02
\wx0056 09 09 // frame 9, the animation has finished maybe start from 0
\wx0057 04 04 // frame 4, the animation is stopped at open, maybe restart
\wx80FD // do nothing

// Animation control start/stop
4558 * 18	 02 04 59 // ID
81 18 // extra callback info - reason for call
00 FF
02
\wx8000 00 00 // build station - set frame 0 - will also start animation
\wx0058 01 01 // cargo arrives - start
\wx80FD // do nothing

4559 * 118	 00 04 0B 01 6F
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842D \wx0002
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
06 // registers
\dx80000439 \wx0003 // snow
00 00 80 // x/y/z offset
03 06 // registers
\dx80008431 \wx0003 // door
1F 10 80 // x/y/z offset
02 05 // registers

// 01 (y)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842E \wx0002
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
06 // registers
\dx8000043A \wx0003 // snow
00 00 80 // x/y/z offset
03 06 // registers
\dx80008435 \wx0003 // door
1F 10 80 // x/y/z offset
02 05 // registers

0B 06 // use callback to determine layout (2) and next animation frame (4)

0C FE // only allow a width of 1

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// General flags
13 04 // give callback 141 random bits in variable 10

16 \wx0009 // animation info 10 frames
17 04 // animation speed 2^4 ticks per frame
18 \wx0003 // animation triggers - build (1), cargo arrives (2)

4560 * 4	 01 04 01 10
4561 images/newfacilities5.pcx 72 263 01 44 64 -31 -13 // 042D x, single
4562 images/newfacilities5.pcx 206 263 01 44 64 -31 -13 // 042E y, single
4563 images/newfacilities5.pcx 5 263 01 47 64 -31 -16 // 042F x, double
4564 images/newfacilities5.pcx 139 263 01 47 64 -31 -16 // 0430 y, double

4565 images/newfacilities5.pcx 274 263 01 9 9 -6 16 // 0431 x, door 1
4566 images/newfacilities5.pcx 285 263 01 9 9 -6 16 // 0432 x, door 2
4567 images/newfacilities5.pcx 296 263 01 9 9 -6 16 // 0433 x, door 3
4568 images/newfacilities5.pcx 307 263 01 9 9 -6 16 // 0434 x, door 4
4569 images/newfacilities5.pcx 320 279 01 9 9 -1 16 // 0435 y, door 1
4570 images/newfacilities5.pcx 331 279 01 9 9 -1 16 // 0436 y, door 2
4571 images/newfacilities5.pcx 342 279 01 9 9 -1 16 // 0437 y, door 3
4572 images/newfacilities5.pcx 353 279 01 9 9 -1 16 // 0438 y, door 4

4573 images/newfacilities5.pcx 66 947 01 23 34 20 0 // 0439 x, single snow
4574 images/newfacilities5.pcx 165 947 01 23 34 10 0 // 043A y, single snow
4575 images/newfacilities5.pcx 5 947 01 32 56 4 2 // 043B x, double snow
4576 images/newfacilities5.pcx 105 947 01 32 56 4 2 // 043C y, double snow

4577 * 7	 02 04 00 // ID
00 01
\w0

4578 * 14	 02 04 01 // ID
81 41
04 0F // position along platform from south
01
\wx8000 00 00 // south tile - single building
\wx8002 // double building

4579 * 14	 02 04 04 // ID
81 41
04 0F // position along platform from south
01
\wx8000 00 00 // hide door overlay if south tile
\wx0062 // else

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4580 * 72	 02 04 15 // ID
85
7E 01 // get office variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E 52 // get a_frame
20 \wx00FF
\2-
1A // all bits on
20 \wx0001 // a_frame - 1
\2sto 1A
20 \wx0005 // store in register - door animation offset
\2rst
7E 04 // get hide/show flag
20 \wx000F
\2sto 1A
20 \wx0002 // store in register - show door animation
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4581 * 42	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0006 // store in register - variety offset
\2sto 1A
20 \wx0005 // store in register - door animation offset
\2sto 1A
20 \wx0002 // store in register - show door animation
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback handler
4582 * 29	 02 04 02 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0059 \wx0140 \wx0140 // animation control
\wx0055 \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
4583 * 17	 02 04 03 // ID
85 0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0016 // real sprites

4584 * 10	 03 04
01 6F
01
FF \wx0003 // purchase
\wx0002

4585 * 114	 00 04 0B 01 70
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx80000437 \wx0001 // snow
04 00 80 // x/y/z offset
03 // register
\dx8000042F \wx0003 // door
1F 0A 80 // x/y/z offset
02 05 // registers

// 01 (y)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx80000438 \wx0001 // snow
05 00 80 // x/y/z offset
03 // register
\dx80000433 \wx0003 // door
1F 0A 80 // x/y/z offset
02 05 // registers

0B 06 // use callback to determine layout (2) and next animation frame (4)

0C FE // only allow a width of 1

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile

// General flags
13 04 // give callback 141 random bits in variable 10

16 \wx0009 // animation info 10 frames
17 04 // animation speed 2^4 ticks per frame
18 \wx0003 // animation triggers - build (1), cargo arrives (2)

4586 * 4	 01 04 01 0C
4587 images/newfacilities5.pcx 5 320 01 41 64 -31 -10 // 042D x, close 0
4588 images/newfacilities5.pcx 140 320 01 41 64 -31 -10 // 042E y, close 0
4589 images/newfacilities5.pcx 276 320 01 18 16 7 7 // 042F x, door 1
4590 images/newfacilities5.pcx 296 320 01 18 16 7 7 // 0430 x, door 2
4591 images/newfacilities5.pcx 316 320 01 18 16 7 7 // 0431 x, door 3
4592 images/newfacilities5.pcx 336 320 01 18 16 7 7 // 0432 x, door 4
4593 images/newfacilities5.pcx 276 343 01 18 16 -21 7 // 0433 y, door 1
4594 images/newfacilities5.pcx 296 343 01 18 16 -21 7 // 0434 y, door 2
4595 images/newfacilities5.pcx 316 343 01 18 16 -21 7 // 0435 y, door 3
4596 images/newfacilities5.pcx 336 343 01 18 16 -21 7 // 0436 y, door 4
4597 images/newfacilities5.pcx 5 983 01 27 56 0 0 // 0437 x, snow
4598 images/newfacilities5.pcx 66 983 01 27 56 0 0 // 0438 y, snow

4599 * 7	 02 04 00 // ID
00 01
\w0

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4600 * 61	 02 04 15 // ID
85
7E 52 // get a_frame
20 \wx00FF
\2-
1A // all bits on
20 \wx0001 // a_frame - 1
\2sto 1A
20 \wx0005 // store in register - door animation offset
\2rst
7E 62 // get hide/show flag
20 \wx000F
\2sto 1A
20 \wx0002 // store in register - show door animation
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4601 * 37	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0005 // store in register - door animation offset
\2sto 1A
20 \wx0002 // store in register - show door animation
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4602 * 29	 02 04 01 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0059 \wx0140 \wx0140 // animation control
\wx0055 \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
4603 * 17	 02 04 02 // ID
85 0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0016 // real sprites

4604 * 10	 03 04
01 70
01
FF \wx0002 // purchase
\wx0001

4605 * 118	 00 04 0B 01 71
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842D \wx0002
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
06 // registers
\dx80000439 \wx0003 // snow
00 00 80 // x/y/z offset
03 06 // registers
\dx80000431 \wx0003 // door
1F 0C 80 // x/y/z offset
02 05 // registers

// 01 (y)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842E \wx0002
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
06 // registers
\dx8000043A \wx0003 // snow
00 00 80 // x/y/z offset
03 06 // registers
\dx80000435 \wx0003 // door
1F 0C 80 // x/y/z offset
02 05 // registers

0B 06 // use callback to determine layout (2) and next animation frame (4)

0C FE // only allow a width of 1

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// General flags
13 04 // give callback 141 random bits in variable 10

16 \wx0009 // animation info 10 frames
17 04 // animation speed 2^4 ticks per frame
18 \wx0003 // animation triggers - build (1), cargo arrives (2)

4606 * 4	 01 04 01 10
4607 images/newfacilities5.pcx 72 430 01 44 65 -32 -13 // 042D x, single
4608 images/newfacilities5.pcx 207 430 01 44 64 -31 -13 // 042E y, single
4609 images/newfacilities5.pcx 5 430 01 44 64 -31 -13 // 042F x, double
4610 images/newfacilities5.pcx 141 430 01 44 64 -31 -13 // 0430 y, double
4611 images/newfacilities5.pcx 274 430 01 12 8 11 4 // 0431 x, door 1
4612 images/newfacilities5.pcx 284 430 01 12 8 11 4 // 0432 x, door 2
4613 images/newfacilities5.pcx 294 430 01 12 8 11 4 // 0433 x, door 3
4614 images/newfacilities5.pcx 304 430 01 12 8 11 4 // 0434 x, door 4
4615 images/newfacilities5.pcx 315 430 01 12 8 -17 4 // 0435 y, door 1
4616 images/newfacilities5.pcx 326 430 01 12 8 -17 4 // 0436 y, door 2
4617 images/newfacilities5.pcx 337 430 01 12 8 -17 4 // 0437 y, door 3
4618 images/newfacilities5.pcx 348 430 01 12 8 -17 4 // 0438 y, door 4
4619 images/newfacilities5.pcx 64 1032 01 19 38 16 0 // 0439 x, single snow
4620 images/newfacilities5.pcx 166 1032 01 19 38 10 0 // 043A y, single snow
4621 images/newfacilities5.pcx 5 1032 01 27 54 0 0 // 043B x, double snow
4622 images/newfacilities5.pcx 107 1032 01 27 54 10 0 // 043C y, double snow

4623 * 7	 02 04 00 // ID
00 01
\w0

4624 * 14	 02 04 02 // ID
81 41
04 0F // position along platform from south
01
\wx8000 00 00 // single building
\wx8002 // double building

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4625 * 72	 02 04 15 // ID
85
7E 02 // get building variety offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E 52 // get a_frame
20 \wx00FF
\2-
1A // all bits on
20 \wx0001 // a_frame - 1
\2sto 1A
20 \wx0005 // store in register - door animation offset
\2rst
7E 62 // get hide/show flag
20 \wx000F
\2sto 1A
20 \wx0002 // store in register - show door animation
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4626 * 42	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0006 // store in register - variety offset
\2sto 1A
20 \wx0005 // store in register - door animation offset
\2sto 1A
20 \wx0002 // store in register - show door animation
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback handler
4627 * 29	 02 04 03 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0059 \wx0140 \wx0140 // animation control
\wx0055 \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
4628 * 17	 02 04 04 // ID
85 0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0016 // real sprites

4629 * 10	 03 04
01 71
01
FF \wx0004 // purchase
\wx0003

4630 * 196	 00 04 0B 01 72
08 "ISRF"

// Sprite layout
1A 04
// 00 (x)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx80000439 \wx0001 // snow
04 01 80 // x/y/z offset
03 // register
\dx80000431 \wx0003 // door
1F 13 80 // x/y/z offset
02 05 // registers

// 01 (y)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx8000043A \wx0001 // snow
04 01 80 // x/y/z offset
03 // register
\dx80000435 \wx0003 // door
1F 19 80 // x/y/z offset
02 05 // registers

// 02 (x)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842F \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx8000043B \wx0001 // snow
04 01 80 // x/y/z offset
03 // register
\dx80000431 \wx0003 // door
1F 13 80 // x/y/z offset
02 05 // registers

// 03 (y)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx80008430 \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx8000043C \wx0001 // snow
04 01 80 // x/y/z offset
03 // register
\dx80000435 \wx0003 // door
1F 13 80 // x/y/z offset
02 05 // registers

0B 06 // use callback to determine layout (2) and next animation frame (4)

0C FE // only allow a width of 1

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// General flags
13 04 // give callback 141 random bits in variable 10

16 \wx0009 // animation info 10 frames
17 04 // animation speed 2^4 ticks per frame
18 \wx0003 // animation triggers - build (1), cargo arrives (2)

4631 * 4	 01 04 01 10
4632 images/newfacilities5.pcx 72 483 01 50 64 -31 -19 // 042D x, type a
4633 images/newfacilities5.pcx 206 483 01 56 64 -31 -25 // 042E y, type a
4634 images/newfacilities5.pcx 5 483 01 50 64 -31 -19 // 042F x, type b
4635 images/newfacilities5.pcx 139 483 01 50 64 -31 -19 // 0430 y, type b

4636 images/newfacilities5.pcx 273 483 01 16 16 7 9 // 0431 x, door 1
4637 images/newfacilities5.pcx 292 483 01 16 16 7 9 // 0432 x, door 2
4638 images/newfacilities5.pcx 311 483 01 16 16 7 9 // 0433 x, door 3
4639 images/newfacilities5.pcx 330 483 01 16 16 7 9 // 0434 x, door 4
4640 images/newfacilities5.pcx 273 503 01 16 16 -21 9 // 0435 y, door 1
4641 images/newfacilities5.pcx 292 503 01 16 16 -21 9 // 0436 y, door 2
4642 images/newfacilities5.pcx 311 503 01 16 16 -21 9 // 0437 y, door 3
4643 images/newfacilities5.pcx 330 503 01 16 16 -21 9 // 0438 y, door 4

4644 images/newfacilities5.pcx 66 1064 01 27 56 0 0 // 0439 x, type a snow
4645 images/newfacilities5.pcx 188 1064 01 33 56 0 0 // 043A y, type a snow
4646 images/newfacilities5.pcx 5 1064 01 27 56 0 0 // 043B x, type b snow
4647 images/newfacilities5.pcx 127 1064 01 27 56 0 0 // 043C y, type b snow

4648 * 7	 02 04 00 // ID
00 01
\w0

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4649 * 61	 02 04 15 // ID
85
7E 52 // get a_frame
20 \wx00FF
\2-
1A // all bits on
20 \wx0001 // a_frame - 1
\2sto 1A
20 \wx0005 // store in register - door animation offset
\2rst
7E 62 // get hide/show flag
20 \wx000F
\2sto 1A
20 \wx0002 // store in register - show door animation
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4650 * 37	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0005 // store in register - door animation offset
\2sto 1A
20 \wx0002 // store in register - show door animation
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 14
4651 * 11	 02 04 02 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8002

4652 * 29	 02 04 03 // ID
85 0C // callback
00 \wxFFFF
03
\wx0002 \wx0014 \wx0014 // sprite layout
\wx0059 \wx0140 \wx0140 // animation control
\wx0055 \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
4653 * 17	 02 04 04 // ID
85 0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0016 // real sprites

4654 * 10	 03 04
01 72
01
FF \wx0004 // purchase
\wx0003

4655 * 82	 00 04 06 01 73
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842D \wx0002
00 00 00 // x/y/z offset
10 10 18 // x/y/z extent
06 // register
\dx80000433 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842E \wx0002
00 00 00 // x/y/z offset
10 10 18 // x/y/z extent
06 // register
\dx80000434 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

0B 02 // use callback to determine layout

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

4656 * 4	 01 04 01 08
4657 images/newfacilities5.pcx 5 614 09 55 64 -31 -24 // 042D x, type 1
4658 images/newfacilities5.pcx 210 614 09 55 64 -31 -24 // 042E y, type 1
4659 images/newfacilities5.pcx 73 614 09 55 64 -31 -24 // 042F x, type 2
4660 images/newfacilities5.pcx 279 614 09 55 64 -31 -24 // 0430 y, type 2
4661 images/newfacilities5.pcx 141 614 09 55 64 -31 -24 // 0431 x, type 3
4662 images/newfacilities5.pcx 347 614 09 55 64 -31 -24 // 0432 y, type 3
4663 images/newfacilities5.pcx 5 1135 09 39 64 0 0 // 0433 x, snow
4664 images/newfacilities5.pcx 74 1135 09 39 64 0 0 // 0434 y, snow

4665 * 7	 02 04 00 // ID
00 01
\w0

4666 * 39	 02 04 03 // ID
80
00 // don't re-randomise
10 // use bits 16 to 19
10
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4667 * 45	 02 04 15 // ID
85
7E 03 // get variety offset
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - variety offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4668 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

4669 * 7	 03 04
01 73
00
\wx0004

4670 * 116	 00 04 0C 01 74
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx80000437 \wx0001 // snow
05 00 80 // x/y/z offset
03 // register
\dx8000842F \wx0003 // door
1F 0F 80 // x/y/z offset
02 05 // registers

// 01 (y)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx80000438 \wx0001 // snow
03 00 80 // x/y/z offset
03 // register
\dx80008433 \wx0003 // door
1F 0F 80 // x/y/z offset
02 05 // registers

0B 06 // use callback to determine layout (2) and next animation frame (4)

// Only allow a 1 x 1 layout
0C FE
0D FE

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// General flags
13 04 // give callback 141 random bits in variable 10

16 \wx0009 // animation info 10 frames
17 04 // animation speed 2^4 ticks per frame
18 \wx0003 // animation triggers - build (1), cargo arrives (2)

4671 * 4	 01 04 01 0C
4672 images/newfacilities5.pcx 5 554 09 46 64 -31 -15 // 042D x, building
4673 images/newfacilities5.pcx 73 554 09 46 64 -31 -15 // 042E y, building
4674 images/newfacilities5.pcx 197 554 01 14 10 -24 4 // 042F x, door 1
4675 images/newfacilities5.pcx 211 554 01 14 10 -24 4 // 0430 x, door 2
4676 images/newfacilities5.pcx 225 554 01 14 10 -24 4 // 0431 x, door 3
4677 images/newfacilities5.pcx 239 554 01 14 10 -24 4 // 0432 x, door 4
4678 images/newfacilities5.pcx 141 554 01 14 10 2 11 // 0433 y, door 1
4679 images/newfacilities5.pcx 155 554 01 14 10 2 11 // 0434 y, door 2
4680 images/newfacilities5.pcx 169 554 01 14 10 2 11 // 0435 y, door 3
4681 images/newfacilities5.pcx 183 554 01 14 10 2 11 // 0436 y, door 4
4682 images/newfacilities5.pcx 5 1102 01 27 56 0 0 // 0437 x, snow
4683 images/newfacilities5.pcx 66 1102 01 27 56 0 0 // 0438 y, snow

4684 * 7	 02 04 00 // ID
00 01
\w0

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4685 * 61	 02 04 15 // ID
85
7E 52 // get a_frame
20 \wx00FF
\2-
1A // all bits on
20 \wx0001 // a_frame - 1
\2sto 1A
20 \wx0005 // store in register - door animation offset
\2rst
7E 62 // get door show/hide flag
20 \wx000F
\2sto 1A
20 \wx0002 // store in register - show/hide door
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4686 * 37	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0005 // store in register - door animation offset
\2sto 1A
20 \wx0002 // store in register - show/hide door
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback handler
4687 * 29	 02 04 01 // ID
85 0C // callback
00 \wxFFFF
03
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0059 \wx0140 \wx0140 // animation control
\wx0055 \wx0141 \wx0141 // animation frame
\wx0015 // real sprites

// For purchase list
4688 * 17	 02 04 02 // ID
85 0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0016 // real sprites

4689 * 10	 03 04
01 74
01
FF \wx0002 // purchase
\wx0001

4690 * 80	 00 04 06 01 75
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842D \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx8000042F \wx0001 // snow
05 00 80 // x/y/z offset
03 // register

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000842E \wx0000
00 00 00 // x/y/z offset
10 10 13 // x/y/z extent
\dx80000430 \wx0001 // snow
05 00 80 // x/y/z offset
03 // register

0B 02 // use callback to determine layout

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

4691 * 4	 01 04 02 04
4692 images/newfacilities5.pcx 208 371 01 47 64 -31 -16 // x, small
4693 images/newfacilities5.pcx 73 371 01 47 64 -31 -16 // y, small
4694 images/newfacilities5.pcx 46 1014 01 8 18 18 1 // x, small snow
4695 images/newfacilities5.pcx 46 1014 01 8 18 18 1 // y, small snow
4696 images/newfacilities5.pcx 140 371 01 44 64 -31 -13 // x, large
4697 images/newfacilities5.pcx 5 371 01 44 64 -31 -13 // y, large
4698 images/newfacilities5.pcx 69 1014 01 14 36 9 1 // x, large snow
4699 images/newfacilities5.pcx 5 1014 01 14 36 9 1 // y, large snow

4700 * 7	 02 04 00 // ID
00 01
\w0

4701 * 7	 02 04 01 // ID
00 01
\w1

4702 * 11	 02 04 02 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx0000
\wx0001

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4703 * 34	 02 04 15 // ID
85
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0002 \w0 \w0
\wx0002

// Purchase
4704 * 27	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4705 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4706 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4707 * 10	 03 04
01 75
01
FF \wx0005 // purchase
\wx0003

4708 * 122	 00 04 05 01 76
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
44
\dx000003F4 \wx0000 // ground sprite - track
\dx80000431 \wx0000 // shed back part
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent
\dx8000842D \wx0002 // shed front
00 00 00 // x/y/z offset
10 10 1C // x/y/z extent
0A // register
\dx80000435 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // registers
\dx80000433 \wx0001 // door
0B 1B 80 // x/y/z offset
02 // register

// 01 (y)
44
\dx000003F3 \wx0000 // ground sprite - track
\dx80000432 \wx0000 // shed back part
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent
\dx8000842E \wx0002 // shed front
00 00 00 // x/y/z offset
10 10 1C // x/y/z extent
0A // register
\dx80000436 \wx0001 // shed snow
01 00 80 // x/y/z offset
03 // registers
\dx80000434 \wx0001 // door
2A 1B 80 // x/y/z offset
02 // register

0B 02 // use callback to determine layout

11 00 // no pylons
14 FF // no wires

4709 * 11	 02 04 07 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8002

//@@WARNING DISABLE 100

4710 * 45	 02 04 16 // ID
85
7E 07 // get train shed variety offset
20 \wx00FF
\2sto 1A
20 \wx000A // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BC // get door show/hide flag
20 \wx00FF
\2sto 1A
00 \wx0002 // store in register
01
\wx00EC \w0 \w0
\wx00EC

// Purchase
4711 * 37	 02 04 17 // ID
85
1A
20 \w0 // show first variety
\2sto 1A
20 \wx000A // store in register - train shed variety offset
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
1A
20 \w1 // show door
\2sto 1A
00 \wx0002 // store in register - door show/hide flag
01
\wx00EC \w0 \w0
\wx00EC

//@@WARNING ENABLE 100

4712 * 14	 02 04 04 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

// Purchase
4713 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0017 // real sprites

4714 * 10	 03 04
01 76
01
FF \wx0002 // purchase
\wx0004
4715 * 292	 00 04 07 01 77
08 "ISRF"

// Sprite layout
1A 04
// 00 (x) - platforms with building
45
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042D \wx0000 // back platform building
00 00 03 // x/y/z offset
10 04 13 // x/y/z extent
\dx80000441 \wx0002 // back platform building overlay
01 11 80 // x/y/z offset
06 // register
\dx80000449 \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 01 (y) - platforms with building
45
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000042F \wx0000 // back platform building
00 00 03 // x/y/z offset
04 10 13 // x/y/z extent
\dx80000443 \wx0002 // back platform building overlay
04 11 80 // x/y/z offset
06 // register
\dx8000044B \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

// 02 (x) - platforms with clock tower building
45
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042E \wx0000 // back platform building
00 00 03 // x/y/z offset
0F 04 1F // x/y/z extent
\dx8000044A \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx8000842D \wx0042 // flag
08 03 22 // x/y/z offset
01 02 0F // x/y/z extent
0A // register
05 // value for variable 10
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10

// 03 (y) - platforms with clock tower building
45
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000430 \wx0000 // back platform building
00 00 03 // x/y/z offset
04 0F 1F // x/y/z extent
\dx8000044C \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx8000842D \wx0042 // flag
02 09 22 // x/y/z offset
01 02 0F // x/y/z extent
0A // register
05 // value for variable 10
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

16 \wx0107 // animation info 8 frames looping
17 03 // animation speed 2^3 ticks per frame
18 \wx0001 // animation triggers - build

// Callback 140

// Animation control start
4716 * 14	 02 04 21 // ID
81 18 // extra callback info - reason for call
00 FF
01
\wx80FE 00 00 // build station - start animation
\wx80FD // do nothing

// Real sprites

// Test variable 10 for real sprites
4717 * 18	 02 04 0B // ID
81 10 // additional information for sprite selection
00 0F
02
\wx00FC 04 04 // platform sprites
\wx00D3 05 05 // flag sprites
\wx00D0 // freight building sprites

// Random building overlay offset
4718 * 11	 02 04 1C // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

// Platform with building
4719 * 28	 02 04 10 // ID
81 7E BB // get snow overlay flag
20 FF
\2sto 1A
20 09 // store in register - show/hide snow
\2rst 7E 1C // get back building overlay offset
20 FF
\2sto 1A
00 06 // store in register
01
\wx000B 00 00
\wx000B

// Platform with clock tower building
4720 * 27	 02 04 11 // ID
81 7E BB // get snow overlay flag
20 FF
\2sto 1A
20 09 // store in register - show/hide snow
\2rst 4A // animation frame
20 FF
\2sto 1A
00 0A // store in register - flag offset
01
\wx000B 00 00
\wx000B

// Purchase
4721 * 26	 02 04 12 // ID
81 1A // all bits on
20 00 // val = 0
\2sto 1A
20 09 // store in register - show/hide snow
\2rst 1A // all bits on
20 01 // val = 1
\2sto 1A
00 06 // store in register - back building overlay offset
01
\wx000B 00 00
\wx000B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Clocktower
4722 * 23	 02 04 06 // ID
85 0C // callback
00 \wxFFFF
02
\wx8002 \wx0014 \wx0014 // sprite layout
\wx0021 \wx0140 \wx0140 // animation control
\wx0011 // real sprites

// Building
4723 * 23	 02 04 05 // ID
85 0C // callback
00 \wxFFFF
02
\wx8000 \wx0014 \wx0014 // sprite layout
\wx80FD \wx0140 \wx0140 // animation control
\wx0010 // real sprites

// Random clocktower or building
4724 * 15	 02 04 02 // ID
80
00 // don't re-randomise
11 // use bits 17 and 18
04
\wx0005
\wx0005
\wx0005
\wx0006

// Purchase list
4725 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0012 // real sprites

4726 * 10	 03 04
01 77
01
FF \wx0003 // purchase list
\wx0002

4727 * 150	 00 04 04 01 78
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
45
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000431 \wx0002 // front platform building
00 0C 03 // x/y/z offset
10 04 13 // x/y/z extent
07 // register
\dx8000843D \wx0003 // front platform building overlay
0A 04 80 // x/y/z offset
02 08 // register
\dx8000044D \wx0001 // front platform building snow
00 00 80 // x/y/z offset
09 // registers

// 01 (y)
45
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000433 \wx0002 // front platform building
0C 00 03 // x/y/z offset
04 10 13 // x/y/z extent
07 // register
\dx8000843F \wx0003 // front platform building overlay
02 04 80 // x/y/z offset
02 08 // register
\dx8000044F \wx0001 // front platform building snow
00 00 80 // x/y/z offset
09 // registers

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

// Real sprites

// Test variable 10 for real sprites
4728 * 14	 02 04 0B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00D0 // freight building sprites

// Random building overlay offset
4729 * 11	 02 04 1C // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

// Random front building offset
4730 * 15	 02 04 1B // ID
80
00 // don't re-randomise
11 // use bits 17 and 18
04
\wx8000
\wx8001
\wx8000
\wx8000

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4731 * 46	 02 04 10 // ID
81 7E BB // get snow overlay flag
20 FF
\2sto 1A
20 09 // store in register - show/hide snow
\2rst 7E 1B // get front building offset
20 FF
\2sto 1A
20 07 // store in register
\2rst 7E B3 // get front building overlay visibility
20 FF
\2sto 1A
20 02 // store in register
\2rst 7E 1C // get front building overlay offset
20 FF
\2sto 1A
00 08 // store in register
01
\wx000B 00 00
\wx000B

// Purchase
4732 * 34	 02 04 11 // ID
81 1A // all bits on
20 00 // val = 0
\2sto 1A
20 09 // store in register - show/hide snow
\2sto 1A
20 07 // store in register - front building offset
\2rst 1A // all bits on
20 01 // val = 1
\2sto 1A
20 02 // store in register - front building overlay visibility
\2sto 1A
00 08 // store in register - front building overlay offset
01
\wx000B 00 00
\wx000B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4733 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0010 // real sprites

// Purchase list
4734 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0011 // real sprites

4735 * 10	 03 04
01 78
01
FF \wx0003 // purchase list
\wx0002

4736 * 214	 00 04 04 01 79
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
48
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx8000042D \wx0000 // back platform building
00 00 03 // x/y/z offset
10 04 13 // x/y/z extent
\dx80000441 \wx0002 // back platform building overlay
01 11 80 // x/y/z offset
06 // register
\dx80000449 \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000431 \wx0002 // front platform building
00 0C 03 // x/y/z offset
10 04 13 // x/y/z extent
07 // register
\dx8000843D \wx0003 // front platform building overlay
0A 04 80 // x/y/z offset
02 08 // register
\dx8000044D \wx0001 // front platform building snow
00 00 80 // x/y/z offset
09 // registers

// 01 (y)
48
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000042F \wx0000 // back platform building
00 00 03 // x/y/z offset
04 10 13 // x/y/z extent
\dx80000443 \wx0002 // back platform building overlay
04 11 80 // x/y/z offset
06 // register
\dx8000044B \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000433 \wx0002 // front platform building
0C 00 03 // x/y/z offset
04 10 13 // x/y/z extent
07 // register
\dx8000843F \wx0003 // front platform building overlay
02 04 80 // x/y/z offset
02 08 // register
\dx8000044F \wx0001 // front platform building snow
00 00 80 // x/y/z offset
09 // registers

0B 02 // use callback to determine layout

11 FF // pylon placement (all)

// Real sprites

// Test variable 10 for real sprites
4737 * 14	 02 04 0B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00D0 // freight building sprites

// Random front building overlay offset
4738 * 11	 02 04 1C // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

// Random back building overlay offset
4739 * 11	 02 04 1D // ID
80
00 // don't re-randomise
13 // use bit 19
02
\wx8000
\wx8001

// Random front building offset
4740 * 15	 02 04 1B // ID
80
00 // don't re-randomise
11 // use bits 17 and 18
04
\wx8000
\wx8001
\wx8000
\wx8000

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4741 * 55	 02 04 10 // ID
81 7E BB // get snow overlay flag
20 FF
\2sto 1A
20 09 // store in register - show/hide snow
\2rst 7E 1D // get back building overlay offset
20 FF
\2sto 1A
20 06 // store in register
\2rst 7E 1B // get front building offset
20 FF
\2sto 1A
20 07 // store in register
\2rst 7E B3 // get front building overlay visibility
20 FF
\2sto 1A
20 02 // store in register
\2rst 7E 1C // get front building overlay offset
20 FF
\2sto 1A
00 08 // store in register
01
\wx000B 00 00
\wx000B

// Purchase
4742 * 38	 02 04 11 // ID
81 1A // all bits on
20 00 // val = 0
\2sto 1A
20 09 // store in register - show/hide snow
\2sto 1A
20 06 // store in register - back building overlay offset
\2sto 1A
20 07 // store in register - front building offset
\2sto 1A
20 08 // store in register - front building overlay offset
\2rst 1A // all bits on
20 01 // val = 1
\2sto 1A
00 02 // store in register - front building overlay visibility
01
\wx000B 00 00
\wx000B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4743 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0010 // real sprites

// Purchase list
4744 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0011 // real sprites

4745 * 10	 03 04
01 79
01
FF \wx0003 // purchase list
\wx0002

4746 * 264	 00 04 05 01 7A
08 "ISRF"

// Sprite layout
1A 02
// 00 (x) - platforms with buildings and conveyor
4A
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000439 \wx0001 // conveyor N part
00 00 03 // x/y/z offset
10 04 13 // x/y/z extent
00 // register
\dx80000455 \wx0001 // conveyor N part snow
00 00 80 // x/y/z offset
09 // register
\dx8000042D \wx0001 // back platform building
00 00 03 // x/y/z offset
10 04 13 // x/y/z extent
01 // register
\dx80000442 \wx0000 // back platform building overlay
01 11 80 // x/y/z offset
\dx80000449 \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000435 \wx0002 // front platform building/conveyor
00 0C 03 // x/y/z offset
10 04 1D // x/y/z extent
07 // register
\dx8000843D \wx0003 // front platform building overlay
0F 0C 80 // x/y/z offset
0C 08 // registers
\dx80000451 \wx0003 // front platform building/conveyor snow
00 00 80 // x/y/z offset
09 07 // registers

// 01 (y) - platforms with buildings and conveyor
4A
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000043A \wx0001 // conveyor N part
00 00 03 // x/y/z offset
04 10 13 // x/y/z extent
00 // register
\dx80000456 \wx0001 // conveyor N part snow
00 00 80 // x/y/z offset
09 // register
\dx8000042F \wx0001 // back platform building
00 00 03 // x/y/z offset
04 10 13 // x/y/z extent
01 // register
\dx80000444 \wx0000 // back platform building overlay
04 11 80 // x/y/z offset
\dx8000044B \wx0001 // back platform building snow
00 00 80 // x/y/z offset
09 // register
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000436 \wx0002 // front platform building/conveyor
0C 00 03 // x/y/z offset
04 10 1D // x/y/z extent
07 // register
\dx8000843F \wx0003 // front platform building overlay
02 0C 80 // x/y/z offset
0C 08 // register
\dx80000452 \wx0003 // front platform building/conveyor snow
00 00 80 // x/y/z offset
09 07 // registers

0B 02 // use callback to determine layout

0D FE // only allow a platform length of 1

11 FF // pylon placement (all)

// Real sprites

// Test variable 10 for real sprites
4747 * 14	 02 04 0B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00D0 // freight building sprites

// Building/conveyor arrangement
// Returns:
//    0 - buildings on both platforms with conveyor between then
//    1 - building on front platform with conveyor to N
//    2 - building on back platform with conveyor to S

// Random building/conveyor arrangement
4748 * 23	 02 04 1F // ID
80
00 // don't re-randomise
11 // use bits 17 to 19
08
\wx8000
\wx8001
\wx8002
\wx8000
\wx8001
\wx8002
\wx8000
\wx8001

// Random building overlay offset
4749 * 11	 02 04 1C // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4750 * 79	 02 04 10 // ID
81 7E BB // get snow overlay flag
20 FF
\2sto 1A
20 09 // store in register - show/hide snow
\2rst 7E 1F // get back conveyor/building type
20 FF
\2sto 1A
20 20 // store in register for later use
\2& 1A // use AND to mask
20 01 // mask bit 0
\2sto 1A
20 00 // store in register - conveyor N part visibility
\2^ 1A // use XOR to invert
20 01 // invert bit 0
\2sto 1A
20 01 // store in register - N building visibility
\2rst 7D 20 // read back conveyor/building type from register
20 02 // check bit 1 (offset is 0 or 2)
\2sto 1A
20 07 // store in register - front building/conveyor offset
\2u>> 1A // shift right
20 01 // shift by 1 bit to divide by 2
\2^ 1A // use XOR to invert
20 01 // invert bit 0
\2& 7E B3 // get front building overlay visibility
20 01
\2sto 1A
20 0C // store in register - front building overlay visibility
\2rst 7E 1C // get front building overlay offset
20 FF
\2sto 1A
00 08 // store in register
01
\wx000B 00 00
\wx000B

// Purchase
4751 * 42	 02 04 11 // ID
81 1A // all bits on
20 00 // val = 0
\2sto 1A
20 09 // store in register - show/hide snow
\2sto 1A
20 00 // store in register - conveyor N part visibility
\2sto 1A
20 07 // store in register - front building/conveyor offset
\2sto 1A
20 08 // store in register - front building overlay offset
\2rst 1A // all bits on
20 01 // val = 1
\2sto 1A
20 01 // store in register - N building visibility
\2sto 1A
00 0C // store in register - front building overlay visibility
01
\wx000B 00 00
\wx000B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4752 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0010 // real sprites

// Purchase list
4753 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0011 // real sprites

4754 * 10	 03 04
01 7A
01
FF \wx0003 // purchase list
\wx0002

4755 * 172	 00 04 05 01 7B
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
46
\dx000003F4 \wx0000 // ground sprite - track
\dx8000042D \wx0040 // back platform
00 00 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000439 \wx0000 // conveyor N part
00 00 03 // x/y/z offset
10 04 13 // x/y/z extent
\dx80000455 \wx0001 // conveyor N part snow
00 00 80 // x/y/z offset
09 // register
\dx8000042E \wx0040 // front platform
00 0B 00 // x/y/z offset
10 05 03 // x/y/z extent
04 // value for variable 10
\dx80000437 \wx0000 // front platform conveyor
00 0C 03 // x/y/z offset
10 04 1D // x/y/z extent
\dx80000453 \wx0001 // front platform conveyor snow
00 00 80 // x/y/z offset
09 // registers

// 01 (y)
46
\dx000003F3 \wx0000 // ground sprite - track
\dx8000042F \wx0040 // back platform
00 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx8000043A \wx0000 // conveyor N part
00 00 03 // x/y/z offset
04 10 13 // x/y/z extent
\dx80000456 \wx0001 // conveyor N part snow
00 00 80 // x/y/z offset
09 // register
\dx80000430 \wx0040 // front platform
0B 00 00 // x/y/z offset
05 10 03 // x/y/z extent
04 // value for variable 10
\dx80000438 \wx0000 // front platform conveyor
0C 00 03 // x/y/z offset
04 10 1D // x/y/z extent
\dx80000454 \wx0001 // front platform conveyor snow
00 00 80 // x/y/z offset
09 // registers

0B 02 // use callback to determine layout

0D FE // only allow a platform length of 1

11 FF // pylon placement (all)

// Real sprites

// Test variable 10 for real sprites
4756 * 14	 02 04 0B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FC 04 04 // platform sprites
\wx00D0 // freight building sprites

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4757 * 19	 02 04 10 // ID
81 7E BB // get snow overlay flag
20 FF
\2sto 1A
00 09 // store in register - show/hide snow
01
\wx000B 00 00
\wx000B

// Purchase
4758 * 18	 02 04 11 // ID
81 1A // all bits on
20 00 // val = 0
\2sto 1A
00 09 // store in register - show/hide snow
01
\wx000B 00 00
\wx000B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

4759 * 14	 02 04 02 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0010 // real sprites

// Purchase list
4760 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0011 // real sprites

4761 * 10	 03 04
01 7B
01
FF \wx0003 // purchase list
\wx0002
4762 * 262	 00 04 05 01 7C
08 "ISRF"

// Sprite layout
1A 04
// 00 (x)
46
\dx000003F4 \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // back platform part
05 00 00 // x/y/z offset
06 04 16 // x/y/z extent
\dx80000433 \wx0001 // back part snow
00 00 80 // x/y/z offset
03 // register
\dx8000042F \wx0000 // front platform part
00 0B 00 // x/y/z offset
10 05 24 // x/y/z extent
\dx80000435 \wx0001 // front part snow
00 00 80 // x/y/z offset
03 // register
\dx80008431 \wx0001 // sign (child)
01 09 80 // x/y/z offset
02 // register

// 01 (y)
46
\dx000003F3 \wx0002 // ground sprite
10 // register
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // back platform part
00 05 00 // x/y/z offset
04 06 16 // x/y/z extent
\dx80000434 \wx0001 // back part snow
00 00 80 // x/y/z offset
03 // register
\dx80000430 \wx0000 // front platform part
0B 00 00 // x/y/z offset
05 10 24 // x/y/z extent
\dx80000436 \wx0001 // front part snow
00 00 80 // x/y/z offset
03 // register
\dx80008432 \wx0001 // sign (child)
14 09 80 // x/y/z offset
02 // register

// 02 (x) - purchase
44
\dx000003F4 \wx0000 // ground sprite
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // back platform part
05 00 00 // x/y/z offset
06 04 16 // x/y/z extent
\dx8000042F \wx0000 // front platform part
00 0B 00 // x/y/z offset
10 05 24 // x/y/z extent
\dx80008431 \wx0000 // sign (child)
01 09 80 // x/y/z offset

// 03 (y) - purchase
44
\dx000003F3 \wx0000 // ground sprite
\dx8000042E \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // back platform part
00 05 00 // x/y/z offset
04 06 16 // x/y/z extent
\dx80000430 \wx0000 // front platform part
0B 00 00 // x/y/z offset
05 10 24 // x/y/z extent
\dx80008432 \wx0000 // sign (child)
14 09 80 // x/y/z offset

0B 02 // use callback to determine layout

0D FE // only allow a platform length of 1

11 FF // pylon placement (all)

// Test variable 10 for real sprites
4763 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FD 04 04 // ground overlay sprites
\wx00E8 // valuables sprites

4764 * 11	 02 04 01 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

//@@WARNING DISABLE 100

4765 * 51	 02 04 15 // ID
85
7E 01 // get sign show/hide flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BE // get normal/snow/desert offset
20 \wx7FFF
\2+
7E BD // add monorail/maglev offset
20 \wx00FF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100

4766 * 14	 02 04 03 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4767 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8002 14 14 // sprite layout
\wx001B // real sprites

4768 * 10	 03 04
01 7C
01
FF \wx0005 // purchase
\wx0003

4769 * 166	 00 04 07 01 7D
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
46
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042D \wx0000 // back part
05 00 00 // x/y/z offset
06 04 16 // x/y/z extent
\dx80000433 \wx0001 // back part snow
00 00 80 // x/y/z offset
03 // register
\dx8000042F \wx0000 // front part
00 0B 00 // x/y/z offset
10 05 24 // x/y/z extent
\dx80000435 \wx0001 // front part snow
00 00 80 // x/y/z offset
03 // register
\dx80008431 \wx0001 // sign (child)
01 09 80 // x/y/z offset
02 // register

// 01 (y)
46
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0040 // ground overlay sprite (child)
00 00 80 // x/y/z offset
04 // value for variable 10
\dx8000042E \wx0000 // back part
00 05 00 // x/y/z offset
04 06 16 // x/y/z extent
\dx80000434 \wx0001 // back part snow
00 00 80 // x/y/z offset
03 // register
\dx80000430 \wx0000 // front part
0B 00 00 // x/y/z offset
05 10 24 // x/y/z extent
\dx80000436 \wx0001 // front part snow
00 00 80 // x/y/z offset
03 // register
\dx80008432 \wx0001 // sign (child)
14 09 80 // x/y/z offset
02 // register

0B 02 // use callback to determine layout

0D FE // only allow a platform length of 1

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

// Test variable 10 for real sprites
4770 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00FF 04 04 // ground overlay sprites
\wx00E8 // valuables sprites

4771 * 11	 02 04 02 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4772 * 45	 02 04 15 // ID
85
7E 02 // get sign show/hide flag
20 \wx00FF
\2sto 1A
20 \wx0002 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
4773 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w0
\2sto 1A
20 \wx0002 // store in register - show/hide sign
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4774 * 14	 02 04 01 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
4775 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4776 * 10	 03 04
01 7D
01
FF \wx0005 // purchase
\wx0001

4777 * 142	 00 04 05 01 7E
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
45
\dx000003F4 \wx0000 // ground sprite - track
\dx80000433 \wx0000 // back part
00 00 00 // x/y/z offset
10 05 0F // x/y/z extent
\dx80000439 \wx0001 // back part snow
00 00 80 // x/y/z offset
03 // register
\dx8000842D \wx0002 // shed
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent
12 // register
\dx80000437 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // register
\dx80000435 \wx0001 // door
02 1E 80 // x/y/z offset
02 // register

// 01 (y)
45
\dx000003F3 \wx0000 // ground sprite - track
\dx80000434 \wx0000 // back part
00 00 00 // x/y/z offset
05 10 0F // x/y/z extent
\dx8000043A \wx0001 // back part snow
10 00 80 // x/y/z offset
03 // register
\dx8000842E \wx0002 // shed
00 00 00 // x/y/z offset
10 10 20 // x/y/z extent
12 // register
\dx80000438 \wx0001 // shed snow
00 00 80 // x/y/z offset
03 // register
\dx80000436 \wx0001 // door
28 1E 80 // x/y/z offset
02 // register

0B 02 // use callback to determine layout

11 00 // no pylons
14 FF // no wires

4778 * 39	 02 04 03 // ID
80
00 // don't re-randomise
10 // use bits 16 to 19
10
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000
\wx8002
\wx8004
\wx8000

//@@WARNING DISABLE 100

4779 * 45	 02 04 15 // ID
85
7E 03 // get random shed type offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BC // get door open/closed
20 \wx00FF
\2sto 1A
00 \wx0002 // store in register
01
\wx00EB \w0 \w0
\wx00EB

4780 * 37	 02 04 16 // ID
85
1A
20 \w0 // show first variety
\2sto 1A
20 \wx0012 // store in register
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
1A
20 \wx0001 // show door
\2sto 1A
00 \wx0002 // store in register
01
\wx00EB \w0 \w0
\wx00EB

//@@@WARNING ENABLE 100

4781 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
4782 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4783 * 10	 03 04
01 7E
01
FF \wx0006 // purchase
\wx0005

4784 * 18	 00 04 05 01 7F
08 "ISRF"

0A 7E // sprite layout

0B 02 // use callback to determine layout

11 00 // no pylons
14 FF // no wires

//@@WARNING DISABLE 100

4785 * 45	 02 04 15 // ID
85
7E 03 // get random shed type offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BC // get door open/closed
20 \wx00FF
\2sto 1A
00 \wx0002 // store in register
01
\wx00EA \w0 \w0
\wx00EA

4786 * 37	 02 04 16 // ID
85
1A
20 \w0 // show first variety
\2sto 1A
20 \wx0012 // store in register
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
1A
20 \wx0001 // show door
\2sto 1A
00 \wx0002 // store in register
01
\wx00EA \w0 \w0
\wx00EA

//@@@WARNING ENABLE 100

4787 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
4788 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4789 * 10	 03 04
01 7F
01
FF \wx0006 // purchase
\wx0005

4790 * 18	 00 04 05 01 80
08 "ISRF"

0A 7E // sprite layout

0B 02 // use callback to determine layout

11 00 // no pylons
14 FF // no wires

//@@WARNING DISABLE 100

4791 * 45	 02 04 15 // ID
85
7E 03 // get random shed type offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BC // get door open/closed
20 \wx00FF
\2sto 1A
00 \wx0002 // store in register
01
\wx00E9 \w0 \w0
\wx00E9

4792 * 37	 02 04 16 // ID
85
1A
20 \w0 // show first variety
\2sto 1A
20 \wx0012 // store in register
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
1A
20 \wx0001 // show door
\2sto 1A
00 \wx0002 // store in register
01
\wx00E9 \w0 \w0
\wx00E9

//@@@WARNING ENABLE 100

4793 * 14	 02 04 05 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// Purchase
4794 * 14	 02 04 06 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4795 * 10	 03 04
01 80
01
FF \wx0006 // purchase
\wx0005

4796 * 177	 00 04 08 01 81
08 "ISRF"

// Sprite layout
1A 02
// 00 (x)
46
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // valuables parking
00 00 00 // x/y/z offset
10 10 0D // x/y/z extent
\dx8000042F \wx0001 // snow
00 00 80 // x/y/z offset
03 // register
\dx00008C6D \wx0003 // armoured truck 1 (child)
2D 15 80 // x/y/z offset
04 11 // registers
\dx00008C6D \wx0003 // armoured truck 2 (child)
35 19 80 // x/y/z offset
05 11 // registers
\dx8000842F \wx0043 // forklift (child)
16 21 80 // x/y/z offset
07 12 // registers
05 // value for variable 10
\dx80000434 \wx0041 // cargo (child)
12 1B 80 // x/y/z offset
06 // register
05 // value for variable 10

// 01 (y)
46
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0000 // valuables parking
00 00 00 // x/y/z offset
10 10 0D // x/y/z extent
\dx80000430 \wx0001 // snow
18 00 80 // x/y/z offset
03 // register
\dx00008C73 \wx0003 // armoured truck 1 (child)
13 15 80 // x/y/z offset
04 11 // registers
\dx00008C73 \wx0003 // armoured truck 2 (child)
0B 19 80 // x/y/z offset
05 11 // registers
\dx8000842D \wx0043 // forklift (child)
29 21 80 // x/y/z offset
07 12 // registers
05 // value for variable 10
\dx80000433 \wx0041 // cargo (child)
28 1B 80 // x/y/z offset
06 // register
05 // value for variable 10

0B 02 // use callback to determine layout

0C FE // only allow a width of 1

12 \dx00300400 // cargo types for randomisation triggers

11 00 // no pylons
14 FF // no wires

15 FF // prevent trains entering the tile from any direction

4797 * 4	 01 04 01 04
4798 images/valuablesx4.pcx 78 365 01 45 64 -31 -14 // 042D x
4799 images/valuablesx4.pcx 12 365 01 45 64 -31 -14 // 042E y
4800 images/valuablesx4.pcx 186 365 01 21 40 0 0 // 042F x - snow
4801 images/valuablesx4.pcx 144 365 01 21 40 0 0 // 0430 y - snow

4802 * 7	 02 04 00 // ID
00 01
\w0

// Test variable 10 for real sprites
4803 * 14	 02 04 1B // ID
81 10 // additional information for sprite selection
00 0F
01
\wx00D1 05 05 // forklift sprites
\wx0000 // valuables parking sprites

// Random forklift
4804 * 11	 02 04 06 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx8000
\wx8001

// Forklift variety offset
4805 * 11	 02 04 18 // ID
80
00 // don't re-randomise
11 // use bit 17
02
\wx8000
\wx8001

// Random cargo thresholds
4806 * 15	 02 04 08 // ID
80
02 // no more cargo
12 // use bits 18 and 19
04
\wx8000
\wx8019
\wx8032
\wx804B

// Cargo show/hide
4807 * 30	 02 04 10 // ID
85
7D 20 // read register for this cargo type
20 \wxFFFF
\2rst
7B 60 // get amount of cargo waiting
20 \wxFFFF
\2+
7E 08 // add random value
00 \wx00FF
01
\wx8000 \w0 \w100 // hide cargo
\wx8001 // show cargo

// Vehicles
// Randomisation for cargo thresholds
4808 * 15	 02 04 30 // ID
80
02 // no more cargo
12 // use bits 18 and 19
04
\wx8000
\wx8040
\wx8080
\wx80C0

4809 * 15	 02 04 31 // ID
81 7D 21 // read register
00 FF
01
\wx8000 00 00
\wx8001

4810 * 15	 02 04 32 // ID
81 7D 21 // read register
00 FF
01
\wx8000 00 01
\wx8001

// Randomisation for vehicle positions
4811 * 11	 02 04 36 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx0031
\wx0032

4812 * 11	 02 04 37 // ID
80
00 // don't re-randomise
10 // use bit 16
02
\wx0032
\wx0031

4813 * 23	 02 04 15 // ID
85 01 // year from 1920
00 \wx00FF
02
\wx80C0 \w0 \w53 // to 1973
\wx8000 \w54 \w85 // 1974 to 2005
\wx8180 // 2006 onwards

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4814 * 133	 02 04 20 // ID
85
7E 18 // get random forklift type offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E 06 // get forklift visibility flag
20 \wx7FFF
\2sto 1A
20 \wx0007 // store in register - show/hide forklift
\2&
7E 10 // get crate visibility flag
20 \wx7FFF
\2sto 1A
20 \wx0006 // store in register - show/hide crate
\2rst 7D 20 // read register for this cargo type
20 \wxFFFF
\2rst 7B 60 // get amount of cargo waiting
20 \wxFFFF
\2+ 7E 30 // add random value
20 \wx00FF
\2u>> 1A
20 \wx0008 // shift right 8 bits (val = val / 0x100)
\2< 1A
20 \wx0002 // clamp val at max of 2
\2sto 1A
20 \wx0021 // store in register
\2rst 7E 36 // get visible flag for truck 1
20 \wx00FF
\2sto 1A
20 \wx0004 // store in register
\2rst 7E 37 // get visible flag for truck 2
20 \wx00FF
\2sto 1A
20 \wx0005 // store in register
\2rst 7E 15 // get year offset
20 \wx0FFF
\2sto 1A
20 \wx0011 // store in register - truck year offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// No suitable cargo
4815 * 87	 02 04 22 // ID
85
7E 18 // get random forklift type offset
20 \wx00FF
\2sto 1A
20 \wx0012 // store in register
\2rst
7E 06 // get forklift visibility flag
20 \wx7FFF
\2sto 1A
20 \wx0007 // store in register - show/hide forklift
\2rst 1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0006 // store in register - show/hide crate
\2sto 1A
20 \wx0004 // store in register - show/hide truck 1
\2sto 1A
20 \wx0005 // store in register - show/hide truck 2
\2rst 7E 15 // get year offset
20 \wx0FFF
\2sto 1A
20 \wx0011 // store in register - truck year offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E BF // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

// Purchase
4816 * 68	 02 04 21 // ID
85
1A // all bits on
20 \w1 // val = 1
\2sto 1A
20 \wx0012 // store in register - forklift type offset
\2sto 1A
20 \wx0007 // store in register - show/hide forklift
\2sto 1A
20 \wx0006 // store in register - show/hide crate
\2sto 1A
20 \wx0004 // store in register - show/hide truck 1
\2sto 1A
20 \wx0005 // store in register - show/hide truck 2
\2rst 7E 15 // get year offset
20 \wx0FFF
\2sto 1A
20 \wx0011 // store in register - truck year offset
\2rst 1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx001B \w0 \w0
\wx001B

//@@WARNING ENABLE 100
//@@WARNING ENABLE 170

// Valuables
4817 * 27	 02 04 03 // ID
85
1A // all bits on
20 \wx000A // cargo id for valuables
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Gold
4818 * 27	 02 04 04 // ID
85
1A // all bits on
20 \wx0014 // cargo id for gold
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

// Diamonds
4819 * 27	 02 04 05 // ID
85
1A // all bits on
20 \wx0015 // cargo id for diamonds
\2sto 1A
20 \wx0020 // store in register
\2rst
0C // callback
00 \wxFFFF
01
\wx8000 \wx0014 \wx0014 // sprite layout
\wx0020 // real sprites

//@@WARNING DISABLE 113

// Dummy random action 2 triggers re-randomisation
4820 * 15	 02 04 07 // ID
80
02 // no more cargo
12 // trigger bits 18 and 19
04
\wx0022
\wx0022
\wx0022
\wx0022

//@@WARNING ENABLE 113

// No suitable cargo
4821 * 14	 02 04 01 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0007 // real sprites

// Purchase
4822 * 14	 02 04 02 // ID
81 0C // check callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0021 // real sprites

4823 * 19	 03 04
01 81
04
0A \wx0003 // valuables
14 \wx0004 // gold
15 \wx0005 // diamonds
FF \wx0002 // purchase
\wx0001 // no suitable cargo

// Marshalling yard
// Procedure to get offset for desert/snow non-track ground sprites
4824 * 18	 02 04 7F // ID
81
42 // terrain and track type
00 FF
02
\wx8239 01 01 // if desert: 11C6 - 0F8D = 239
\wx8239 04 04 // if snowy
\wx8000 // else

// == Marshalling yard basic ========================================

4825 * 52	 00 04 04 01 82
08 "ISRS"

// Sprite layout
1A 02
// 00 (x)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0002 // ground overlay (child)
00 00 80 // x/y/z offset
06 // register

// 01 (y)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0002 // ground overlay (child)
00 00 80 // x/y/z offset
06 // register

0B 02 // use callback to determine layout
11 FF // pylon placement (all)

4826 * 4	 01 04 01 0A
4827 images/newswitchyard4.pcx 5 7 09 31 64 -31 0 // 042D x, no side rail
4828 images/newswitchyard4.pcx 291 7 09 31 64 -31 0 // 042E y, no side rail
4829 images/newswitchyard4.pcx 74 7 09 31 64 -31 0 // 042F x, S side rail
4830 images/newswitchyard4.pcx 364 7 09 31 64 -31 0 // 0430 y, S side rail
4831 images/newswitchyard4.pcx 145 7 09 31 64 -31 0 // 0431 x, N and S side rails
4832 images/newswitchyard4.pcx 434 7 09 31 64 -31 0 // 0432 y, N and S side rails
4833 images/newswitchyard4.pcx 215 7 09 31 64 -31 0 // 0433 x, N side rail
4834 images/newswitchyard4.pcx 505 7 09 31 64 -31 0 // 0434 y, N side rail
4835 images/newswitchyard4.pcx 576 129 09 16 16 -9 -7 // 0435 x, tower
4836 images/newswitchyard4.pcx 598 129 09 16 16 -5 -7 // 0436 y, tower

4837 * 7	 02 04 40 // ID
00 01
\w0

// For tiles needing side rail to S: check if next platform N can have side rail
4838 * 18	 02 04 30 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8004 82 05 8A 05 // side rail to N and S
\wx8002 // side rail to S only

// For tiles not needing side rail to S: check if next platform N can have side rail
4839 * 18	 02 04 31 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and dir.
01
\wx8006 82 05 8A 05 // side rail to N only
\wx8000 // no side rails

// For all tiles: check if next platform S can have side rail
4840 * 18	 02 04 32 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0030 82 05 8A 05 // side rail to S
\wx0031 // no side rail to S

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4841 * 34	 02 04 15 // ID
85
7E 32 // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0040 \w0 \w0
\wx0040

// Purchase
4842 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w4 // val = 4
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0040 \w0 \w0
\wx0040

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4843 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4844 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4845 * 10	 03 04
01 82
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard catwalk ======================================

4846 * 16	 00 04 04 01 83
08 "ISRS"
0A 82 // copy sprite layout
0B 02 // use callback to determine layout
11 FF // pylon placement (all)

4847 * 4	 01 04 01 08
4848 images/newswitchyard4.pcx 6 47 09 31 64 -31 0 // 042D x, no side rail
4849 images/newswitchyard4.pcx 291 47 09 31 64 -31 0 // 042E y, no side rail
4850 images/newswitchyard4.pcx 75 47 09 31 64 -31 0 // 042F x, S side rail
4851 images/newswitchyard4.pcx 364 47 09 31 64 -31 0 // 0430 y, S side rail
4852 images/newswitchyard4.pcx 146 47 09 31 64 -31 0 // 0431 x, N and S side rails
4853 images/newswitchyard4.pcx 434 47 09 31 64 -31 0 // 0432 y, N and S side rails
4854 images/newswitchyard4.pcx 216 47 09 31 64 -31 0 // 0433 x, N side rail
4855 images/newswitchyard4.pcx 504 47 09 31 64 -31 0 // 0434 y, N side rail

4856 * 7	 02 04 00 // ID
00 01
\w0

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4857 * 34	 02 04 15 // ID
85
7E 32 // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4858 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w4 // val = 4
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4859 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4860 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4861 * 10	 03 04
01 83
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard crossing =====================================

4862 * 16	 00 04 04 01 84
08 "ISRS"
0A 82 // copy sprite layout
0B 02 // use callback to determine layout
11 FF // pylon placement (all)

4863 * 4	 01 04 01 08
4864 images/newswitchyard4.pcx 6 89 09 31 64 -31 0 // 042D x, no side rail
4865 images/newswitchyard4.pcx 291 89 09 31 64 -31 0 // 042E y, no side rail
4866 images/newswitchyard4.pcx 75 89 09 31 64 -31 0 // 042F x, S side rail
4867 images/newswitchyard4.pcx 364 89 09 31 64 -31 0 // 0430 y, S side rail
4868 images/newswitchyard4.pcx 146 89 09 31 64 -31 0 // 0431 x, N and S side rails
4869 images/newswitchyard4.pcx 434 89 09 31 64 -31 0 // 0432 y, N and S side rails
4870 images/newswitchyard4.pcx 216 89 09 31 64 -31 0 // 0433 x, N side rail
4871 images/newswitchyard4.pcx 504 89 09 31 64 -31 0 // 0434 y, N side rail

4872 * 7	 02 04 00 // ID
00 01
\w0

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4873 * 34	 02 04 15 // ID
85
7E 32 // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4874 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w4 // val = 4
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4875 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4876 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4877 * 10	 03 04
01 84
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard tower ========================================

4878 * 76	 00 04 04 01 85
08 "ISRS"

// Sprite layout
1A 02
// 00 (x)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0002 // ground overlay (child)
00 00 80 // x/y/z offset
06 // register
\dx80000435 \wx0000 // tower
05 02 00 // x/y/z offset
06 03 08 // x/y/z extent

// 01 (y)
42
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0002 // ground overlay (child)
00 00 80 // x/y/z offset
06 // register
\dx80000436 \wx0000 // tower
02 05 00 // x/y/z offset
03 06 08 // x/y/z extent

0B 02 // use callback to determine layout
11 FF // pylon placement (all)

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4879 * 34	 02 04 15 // ID
85
7E 32 // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0040 \w0 \w0
\wx0040

// Purchase
4880 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w4 // val = 4
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0040 \w0 \w0
\wx0040

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4881 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4882 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4883 * 10	 03 04
01 85
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard shelter ======================================

4884 * 187	 00 04 07 01 86
08 "ISRS"

// Sprite layout
1A 04
// 00 (x - far)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0002 // ground overlay (child)
00 00 80 // x/y/z offset
06 // register
\dx80000435 \wx0000 // roof - back part
00 03 0D // x/y/z offset
10 0D 0D // x/y/z extent
\dx80000439 \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 01 (y - far)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0002 // ground overlay (child)
00 00 80 // x/y/z offset
06 // register
\dx80000436 \wx0000 // roof - back part
03 00 0D // x/y/z offset
0D 10 0D // x/y/z extent
\dx8000043A \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 02 (x - near)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx80000431 \wx0002 // ground overlay (child)
00 00 80 // x/y/z offset
06 // register
\dx80008437 \wx0000 // shelter - front part
00 00 00 // x/y/z offset
10 03 1A // x/y/z extent
\dx8000043B \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

// 03 (y - near)
43
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx80000432 \wx0002 // ground overlay (child)
00 00 80 // x/y/z offset
06 // register
\dx80008438 \wx0000 // shelter - front part
00 00 00 // x/y/z offset
03 10 1A // x/y/z extent
\dx8000043C \wx0001 // snow
00 00 80 // x/y/z offset
03 // register

0B 02 // use callback to determine layout
0C FD // only allow width of 2
0D FE // only allow platform length of 1
0E 01 02 00 02 00 00 // station layout
11 CC // pylon placement (11001100)

4885 * 4	 01 04 01 10
4886 images/newswitchyard4.pcx 6 169 09 31 64 -31 0 // 042D x, back tile
4887 images/newswitchyard4.pcx 6 217 09 31 64 -31 0 // 042E y, back tile
4888 images/newswitchyard4.pcx 76 169 09 31 64 -31 0 // 042F x, back tile with N side rail
4889 images/newswitchyard4.pcx 77 217 09 31 64 -31 0 // 0430 y, back tile with N side rail
4890 images/newswitchyard4.pcx 178 169 09 31 64 -31 0 // 0431 x, front tile
4891 images/newswitchyard4.pcx 180 217 09 31 64 -31 0 // 0432 y, front tile
4892 images/newswitchyard4.pcx 249 169 09 31 64 -31 0 // 0433 x, front tile with S side rail
4893 images/newswitchyard4.pcx 251 217 09 31 64 -31 0 // 0434 y, front tile with S side rail
4894 images/newswitchyard4.pcx 145 169 09 27 26 -27 6 // 0435 x, back roof
4895 images/newswitchyard4.pcx 147 217 09 27 26 3 6 // 0436 y, back roof
4896 images/newswitchyard4.pcx 318 169 09 41 34 -27 -23 // 0437 x, front roof and side
4897 images/newswitchyard4.pcx 319 217 09 41 34 -5 -23 // 0438 y, front roof and side
4898 images/newswitchyard4.pcx 360 169 01 24 26 0 0 // 0439 x, back roof - snow
4899 images/newswitchyard4.pcx 360 217 01 24 26 0 0 // 043A y, back roof - snow
4900 images/newswitchyard4.pcx 394 169 01 29 34 0 0 // 043B x, front roof and side - snow
4901 images/newswitchyard4.pcx 394 217 01 29 34 0 0 // 043C y, front roof and side - snow

4902 * 7	 02 04 00 // ID
00 01
\w0

// For north part: check if next platform N can have side rail
4903 * 18	 02 04 12 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8002 82 05 8A 05 // side rail to N
\wx8000 // no side rail

// For south part: check if next platform S can have side rail
4904 * 18	 02 04 13 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8002 82 05 8A 05 // side rail to S
\wx8000 // no side rail

// Test for shelter part at current position
4905 * 18	 02 04 14 // ID
85 68 00 // check tile at current position
00 \wx1000 // mask for bit 12
01
\wx0012 \wx0000 \wx0000 // north part
\wx0013 // south part

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4906 * 45	 02 04 15 // ID
85
7E 14 // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E BB // get snow overlay flag
20 \wx00FF
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4907 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2sto 1A
20 \wx0003 // store in register - show/hide snow
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

// Callback 14
4908 * 18	 02 04 10 // ID
85 68 00 // check tile at current position
00 \wx1000 // mask for bit 12
01
\wx8000 \w0 \w0 // north part
\wx8002 // south part

4909 * 14	 02 04 20 // ID
81 0C // callback
00 FF 01
\wx0010 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4910 * 14	 02 04 21 // ID
81 0C // callback
00 FF 01
\wx8002 14 14 // sprite layout
\wx0016 // real sprites

4911 * 10	 03 04
01 86
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard track switcher (N) ===========================

4912 * 27	 00 04 07 01 87
08 "ISRS"
0A 82 // copy sprite layout
0B 02 // use callback to determine layout
0C FD // only allow width of 2
0D FE // only allow platform length of 1
0E 01 02 00 02 00 00 // station layout
11 FF // pylon placement (all)

4913 * 4	 01 04 01 08
4914 images/newswitchyard4.pcx 6 266 09 31 64 -31 0 // 042D x, back tile
4915 images/newswitchyard4.pcx 7 309 09 31 64 -31 0 // 042E y, back tile
4916 images/newswitchyard4.pcx 293 266 09 31 64 -31 0 // 042F x, front tile
4917 images/newswitchyard4.pcx 293 309 09 31 64 -31 0 // 0430 y, front tile
4918 images/newswitchyard4.pcx 77 266 09 31 64 -31 0 // 0431 x, back tile with N side rail
4919 images/newswitchyard4.pcx 79 309 09 31 64 -31 0 // 0432 y, back tile with N side rail
4920 images/newswitchyard4.pcx 366 266 09 31 64 -31 0 // 0433 x, front tile with S side rail
4921 images/newswitchyard4.pcx 363 309 09 31 64 -31 0 // 0434 y, front tile with S side rail

4922 * 7	 02 04 00 // ID
00 01
\w0

// For north part of switch
// If a pair of switches have another immediately 'upstream' no side rail is shown
// Test upstream for another switch
4923 * 30	 02 04 20 // ID
85 68 01 // station info param 0/+1; check tile along platform to S
00 \wx1FFF // mask 13 bits for tile ID, type, direction and part
03
\wx8000 87 15 87 15 // if S part of switch - N part no side rail
\wx8000 89 05 89 05 // if mid-buffer - N part no side rail
\wx8000 89 15 89 15 // if mid-buffer - N part no side rail
\wx8004 // else - N part with side rail

// Check for another switch to N
4924 * 18	 02 04 21 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx1FFF // mask 13 bits for tile ID, type, direction and part
01
\wx0020 87 15 87 15 // if S part of switch
\wx8004 // else - N part with side rail

// Check tile to N
4925 * 18	 02 04 11 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0021 82 05 8A 05 // if tile can have side rail
\wx8000 // else - N part no side rail

// For south part of switch
// If a pair of switches have another immediately 'upstream' no side rail is shown
// Test upstream for another switch
4926 * 30	 02 04 22 // ID
85 68 01 // station info param 0/+1; check tile along platform to S
00 \wx1FFF // mask 13 bits for tile ID, type, direction and part
03
\wx8002 87 05 87 05 // if N part of switch - S part no side rail
\wx8002 89 05 89 05 // if mid-buffer - S part no side rail
\wx8002 89 15 89 15 // if mid-buffer - S part no side rail
\wx8006 // else - S part with side rail

// Check for another switch to S
4927 * 18	 02 04 23 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx1FFF // mask 13 bits for tile ID, type, direction and part
01
\wx0022 87 05 87 05 // if N part of switch
\wx8006 // else - S part with side rail

// Check tile to S
4928 * 18	 02 04 12 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0023 82 05 8A 05 // if tile can have side rail
\wx8002 // else - S part no side rail

// Test for switch part at current position
4929 * 18	 02 04 13 // ID
85 68 00 // station info param 0/0; check this tile
00 \wx1000 // mask for bit 12
01
\wx0011 \wx0000 \wx0000 // north part
\wx0012 // south part

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4930 * 34	 02 04 15 // ID
85
7E 13 // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4931 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w6 // val = 6
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4932 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4933 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4934 * 10	 03 04
01 87
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard track switcher (S) ===========================

4935 * 27	 00 04 07 01 88
08 "ISRS"
0A 82 // copy sprite layout
0B 02 // use callback to determine layout
0C FD // only allow width of 2
0D FE // only allow platform length of 1
0E 01 02 00 02 00 00 // station layout
11 FF // pylon placement (all)

4936 * 4	 01 04 01 08
4937 images/newswitchyard4.pcx 149 266 09 31 64 -31 0 // 042D x, back tile
4938 images/newswitchyard4.pcx 149 309 09 31 64 -31 0 // 042E y, back tile
4939 images/newswitchyard4.pcx 438 266 09 31 64 -31 0 // 042F x, front tile
4940 images/newswitchyard4.pcx 434 309 09 31 64 -31 0 // 0430 y, front tile
4941 images/newswitchyard4.pcx 221 266 09 31 64 -31 0 // 0431 x, back tile with N side rail
4942 images/newswitchyard4.pcx 222 309 09 31 64 -31 0 // 0432 y, back tile with N side rail
4943 images/newswitchyard4.pcx 507 266 09 31 64 -31 0 // 0433 x, front tile with S side rail
4944 images/newswitchyard4.pcx 506 309 09 31 64 -31 0 // 0434 y, front tile with S side rail

4945 * 7	 02 04 00 // ID
00 01
\w0

// For north part of switch
// If a pair of switches have another immediately 'upstream' no side rail is shown
// Test upstream for another switch
4946 * 30	 02 04 20 // ID
85 68 0F // station info param 0/-1; check tile along platform to N
00 \wx1FFF // mask 13 bits for tile ID, type, direction and part
03
\wx8000 88 15 88 15 // if S part of switch - N part no side rail
\wx8000 8A 05 8A 05 // if mid-buffer - N part no side rail
\wx8000 8A 15 8A 15 // if mid-buffer - N part no side rail
\wx8004 // else - N part with side rail

// Check for another switch to N
4947 * 18	 02 04 21 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx1FFF // mask 13 bits for tile ID, type, direction and part
01
\wx0020 88 15 88 15 // if S part of switch
\wx8004 // else - N part with side rail

// Check tile to N
4948 * 18	 02 04 11 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0021 82 05 8A 05 // if tile can have side rail
\wx8000 // else - N part no side rail

// For south part of switch
// If a pair of switches have another immediately 'upstream' no side rail is shown
// Test upstream for another switch
4949 * 30	 02 04 22 // ID
85 68 0F // station info param 0/-1; check tile along platform to N
00 \wx1FFF // mask 13 bits for tile ID, type, direction and part
03
\wx8002 88 05 88 05 // if N part of switch - S part no side rail
\wx8002 8A 05 8A 05 // if mid-buffer - S part no side rail
\wx8002 8A 15 8A 15 // if mid-buffer - S part no side rail
\wx8006 // else - S part with side rail

// Check for another switch to S
4950 * 18	 02 04 23 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx1FFF // mask 13 bits for tile ID, type, direction and part
01
\wx0022 88 05 88 05 // if N part of switch
\wx8006 // else - S part with side rail

// Check tile to S
4951 * 18	 02 04 12 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0023 82 05 8A 05 // if tile can have side rail
\wx8002 // else - S part no side rail

// Test for switch part at current position
4952 * 18	 02 04 13 // ID
85 68 00 // station info param 0/0; check this tile
00 \wx1000 // mask for bit 12
01
\wx0011 \wx0000 \wx0000 // north part
\wx0012 // south part

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4953 * 34	 02 04 15 // ID
85
7E 13 // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4954 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w6 // val = 6
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4955 * 14	 02 04 20 // ID
81 0C
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4956 * 14	 02 04 21 // ID
81 0C
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4957 * 10	 03 04
01 88
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard middle buffers (N) ===========================

4958 * 58	 00 04 07 01 89
08 "ISRS"

// Sprite layout
1A 02
// 00 (x)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0002 // ground overlay (child)
00 00 80 // x/y/z offset
06 // register

// 01 (y)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0002 // ground overlay (child)
00 00 80 // x/y/z offset
06 // register

0B 02 // use callback to determine layout
0C 01 // only allow width of > 1
0D FE // only allow platform length of 1
15 00 // train can enter tile
11 FF // pylon placement (all)

4959 * 4	 01 04 01 0A
4960 images/newswitchyard4.pcx 7 351 09 31 64 -31 0 // 042D x, S side rail buffer
4961 images/newswitchyard4.pcx 227 351 09 31 64 -31 0 // 042E y, S side rail buffer
4962 images/newswitchyard4.pcx 80 351 09 31 64 -31 0 // 042F x, N and S side rail buffers
4963 images/newswitchyard4.pcx 300 351 09 31 64 -31 0 // 0430 y, N and S side rail buffers
4964 images/newswitchyard4.pcx 153 351 09 31 64 -31 0 // 0431 x, N side rail buffer
4965 images/newswitchyard4.pcx 373 351 09 31 64 -31 0 // 0432 y, N side rail buffer
4966 images/newswitchyard4.pcx 450 351 09 31 64 -31 0 // 0433 x, S side rail buffer, N side rail
4967 images/newswitchyard4.pcx 589 351 09 31 64 -31 0 // 0434 y, S side rail buffer, N side rail
4968 images/newswitchyard4.pcx 518 351 09 31 64 -31 0 // 0435 x, N side rail buffer, S side rail
4969 images/newswitchyard4.pcx 658 351 09 31 64 -31 0 // 0436 x, N side rail buffer, S side rail

4970 * 7	 02 04 00 // ID
00 01
\w0

// For tiles with buffers to S
4971 * 30	 02 04 10 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
03
\wx8002 89 05 89 05 // side rail buffer to N and S
\wx8006 82 05 88 05 // side rail buffer to S, side rail to N
\wx8006 8A 05 8A 05 // side rail buffer to S, side rail to N
\wx8000 // side rail buffer to S only

// For all tiles
4972 * 30	 02 04 12 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
03
\wx0010 89 05 89 05 // side rail buffer to S, check N
\wx8008 82 05 88 05 // side rail buffer to N, side rail to S
\wx8008 8A 05 8A 05 // side rail buffer to N, side rail to S
\wx8004 // side rail buffer to N only

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4973 * 34	 02 04 15 // ID
85
7E 12 // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4974 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w2 // val = 2
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4975 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4976 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4977 * 10	 03 04
01 89
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard middle buffers (S) ===========================

4978 * 22	 00 04 07 01 8A
08 "ISRS"
0A 89 // copy sprite layout
0B 02 // use callback to determine layout
0C 01 // only allow width of > 1
0D FE // only allow platform length of 1
15 00 // train can enter tile
11 FF // pylon placement (all)

4979 * 4	 01 04 01 0A
4980 images/newswitchyard4.pcx 7 389 09 31 64 -31 0 // 042D x, S side rail buffer
4981 images/newswitchyard4.pcx 227 389 09 31 64 -31 0 // 042E y, S side rail buffer
4982 images/newswitchyard4.pcx 80 389 09 31 64 -31 0 // 042F x, N and S side rail buffers
4983 images/newswitchyard4.pcx 300 389 09 31 64 -31 0 // 0430 y, N and S side rail buffers
4984 images/newswitchyard4.pcx 153 389 09 31 64 -31 0 // 0431 x, N side rail buffer
4985 images/newswitchyard4.pcx 373 389 09 31 64 -31 0 // 0432 y, N side rail buffer
4986 images/newswitchyard4.pcx 450 389 09 31 64 -31 0 // 0433 x, S side rail buffer, N side rail
4987 images/newswitchyard4.pcx 589 389 09 31 64 -31 0 // 0434 y, S side rail buffer, N side rail
4988 images/newswitchyard4.pcx 518 389 09 31 64 -31 0 // 0435 x, N side rail buffer, S side rail
4989 images/newswitchyard4.pcx 658 389 09 31 64 -31 0 // 0436 x, N side rail buffer, S side rail

4990 * 7	 02 04 00 // ID
00 01
\w0

// For tiles with buffers to S
4991 * 30	 02 04 10 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
03
\wx8002 8A 05 8A 05 // side rail buffer to N and S
\wx8006 82 05 88 05 // side rail buffer to S, side rail to N
\wx8006 89 05 89 05 // side rail buffer to S, side rail to N
\wx8000 // side rail buffer to S only

// For all tiles
4992 * 30	 02 04 12 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
03
\wx0010 8A 05 8A 05 // side rail buffer to S, check N
\wx8008 82 05 88 05 // side rail buffer to N, side rail to S
\wx8008 89 05 89 05 // side rail buffer to N, side rail to S
\wx8004 // side rail buffer to N only

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

4993 * 34	 02 04 15 // ID
85
7E 12 // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
4994 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w2 // val = 2
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

4995 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
4996 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

4997 * 10	 03 04
01 8A
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard buffers (N) ==================================

4998 * 24	 00 04 08 01 8B
08 "ISRS"
0A 82 // copy sprite layout
0B 02 // use callback to determine layout
0C 00 // allow any width
0D FE // only allow platform length of 1
15 FF // train can enter tile
14 FF // wires (none)
11 00 // pylon placement (none)

4999 * 4	 01 04 01 08
5000 images/newswitchyard4.pcx 7 427 09 31 64 -31 0 // 042D x, no side rail
5001 images/newswitchyard4.pcx 291 427 09 31 64 -31 0 // 042E y, no side rail
5002 images/newswitchyard4.pcx 76 427 09 31 64 -31 0 // 042F x, S side rail
5003 images/newswitchyard4.pcx 364 427 09 31 64 -31 0 // 0430 y, S side rail
5004 images/newswitchyard4.pcx 147 427 09 31 64 -31 0 // 0431 x, N and S side rails
5005 images/newswitchyard4.pcx 434 427 09 31 64 -31 0 // 0432 y, N and S side rails
5006 images/newswitchyard4.pcx 217 427 09 31 64 -31 0 // 0433 x, N side rail
5007 images/newswitchyard4.pcx 505 427 09 31 64 -31 0 // 0434 y, N side rail

5008 * 7	 02 04 00 // ID
00 01
\w0

// For tiles with buffers to S
5009 * 18	 02 04 10 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8004 8B 05 8B 05 // side rail buffer to N and S
\wx8002 // side rail buffer to S only

// For tiles with no buffers to S
5010 * 18	 02 04 11 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8006 8B 05 8B 05 // side rail buffer to N only
\wx8000 // no side rails

// For tiles with no middle buffers or non-middle-rail tiles in tiles to S
5011 * 18	 02 04 12 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0010 8B 05 8B 05 // side rail buffer to S maybe to N
\wx0011 // no side rail buffer to S maybe to N

// For tiles with no side rail to N
5012 * 18	 02 04 1D // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8002 8B 05 8B 05 // side rail buffer to S only
\wx8000 // no side rails

// For tiles with no non-middle-rail tiles 'upstream' extending to S
5013 * 18	 02 04 1C // ID
85 68 F1 // station info param -1/+1; check tile along platform to S, across to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx001D 8D 05 8D 05 // if tile has no side rail to N
\wx0012 // else

// For tiles with no non-middle-rail tiles 'upstream'
5014 * 18	 02 04 1B // ID
85 68 11 // station info param +1/+1; check tile along platform to S, across to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0011 8D 05 8D 05 // if tile has no side rail to S
\wx001C // else

// For tiles with switch tile N part 'upstream'
5015 * 18	 02 04 1E // ID
85 68 F1 // station info param -1/+1; check tile along platform to S, across to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8000 8D 05 8D 05 // no side rails
\wx0011 // no side rail buffer to S maybe to N

// For tiles with switch tiles S part 'upstream'
5016 * 18	 02 04 1F // ID
85 68 11 // station info param +1/+1; check tile along platform to S, across to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8000 8D 05 8D 05 // no side rails
\wx001D // no side rail buffer to N maybe to S

// For tiles with middle-buffers 'upstream' extending to S
5017 * 18	 02 04 21 // ID
85 68 F1 // station info param -1/+1; check tile along platform to S, across to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8000 89 05 89 05 // no side rails
\wx001E // no side rail buffer to S maybe to N

// For tiles with middle-buffers 'upstream'
5018 * 18	 02 04 20 // ID
85 68 11 // station info param +1/+1; check tile along platform to S, across to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0021 89 05 89 05 // if tile is mid-buffer N
\wx001F // else

// For all tiles
5019 * 48	 02 04 1A // ID
85 68 01 // station info param 0/+1; check tile along platform to S
00 \wx1FFF // mask 13 bits for tile ID, type, direction and part
06
\wx8000 8D 05 8D 05 // if tile has no side rail
\wx8000 8D 15 8D 15 // if tile has no side rail
\wx001E 87 05 87 05 // if tile is N part of switch
\wx001F 87 15 87 15 // if tile is S part of switch
\wx0020 89 05 89 05 // if tile is mid-buffer N
\wx0020 89 15 89 15 // if tile is mid-buffer N
\wx001B // else

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

5020 * 34	 02 04 15 // ID
85
7E 1A // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
5021 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w4 // val = 4
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

5022 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
5023 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

5024 * 10	 03 04
01 8B
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard buffers (S) ==================================

5025 * 24	 00 04 08 01 8C
08 "ISRS"
0A 82 // copy sprite layout
0B 02 // use callback to determine layout
0C 00 // allow any width
0D FE // only allow platform length of 1
15 FF // train can enter tile
14 FF // wires (none)
11 00 // pylon placement (none)

5026 * 4	 01 04 01 08
5027 images/newswitchyard4.pcx 7 466 09 31 64 -31 0 // 042D x, no side rail
5028 images/newswitchyard4.pcx 291 466 09 31 64 -31 0 // 042E y, no side rail
5029 images/newswitchyard4.pcx 76 466 09 31 64 -31 0 // 042F x, S side rail
5030 images/newswitchyard4.pcx 364 466 09 31 64 -31 0 // 0430 y, S side rail
5031 images/newswitchyard4.pcx 147 466 09 31 64 -31 0 // 0431 x, N and S side rails
5032 images/newswitchyard4.pcx 434 466 09 31 64 -31 0 // 0432 y, N and S side rails
5033 images/newswitchyard4.pcx 217 466 09 31 64 -31 0 // 0433 x, N side rail
5034 images/newswitchyard4.pcx 505 466 09 31 64 -31 0 // 0434 y, N side rail

5035 * 7	 02 04 00 // ID
00 01
\w0

// For tiles with buffers to S
5036 * 18	 02 04 10 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8004 8C 05 8C 05 // side rail buffer to N and S
\wx8002 // side rail buffer to S only

// For tiles with no buffers to S
5037 * 18	 02 04 11 // ID
85 68 F0 // station info param -1/0; check tile to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8006 8C 05 8C 05 // side rail buffer to N only
\wx8000 // no side rails

// For tiles with no middle buffers or non-middle-rail tiles in tiles to S
5038 * 18	 02 04 12 // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0010 8C 05 8C 05 // side rail buffer to S maybe to N
\wx0011 // no side rail buffer to S maybe to N

// For tiles with no side rail to N
5039 * 18	 02 04 1D // ID
85 68 10 // station info param +1/0; check tile to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8002 8C 05 8C 05 // side rail buffer to S only
\wx8000 // no side rails

// For tiles with no non-middle-rail tiles 'upstream' extending to S
5040 * 18	 02 04 1C // ID
85 68 FF // station info param -1/-1; check tile along platform to N, across to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx001D 8D 05 8D 05 // if tile has no side rail to N
\wx0012 // else

// For tiles with no non-middle-rail1 tiles 'upstream'
5041 * 18	 02 04 1B // ID
85 68 1F // station info param +1/-1; check tile along platform to N, across to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0011 8D 05 8D 05 // if tile has no side rail to S
\wx001C // else

// For tiles with switch tile N part 'upstream'
5042 * 18	 02 04 1E // ID
85 68 FF // station info param -1/-1; check tile along platform to N, across to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8000 8D 05 8D 05 // no side rails
\wx0011 // no side rail buffer to S maybe to N

// For tiles with switch tile S part 'upstream'
5043 * 18	 02 04 1F // ID
85 68 1F // station info param +1/-1; check tile along platform to N, across to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8000 8D 05 8D 05 // no side rails
\wx001D // no side rail buffer to N maybe to S

// For tiles with middle-buffers 'upstream' extending to S
5044 * 18	 02 04 21 // ID
85 68 FF // station info param -1/-1; check tile along platform to N, across to N
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx8000 8A 05 8A 05 // no side rails
\wx001E // no side rail buffer to S maybe to N

// For tiles with middle-buffers 'upstream'
5045 * 18	 02 04 20 // ID
85 68 1F // station info param +1/-1; check tile along platform to N, across to S
00 \wx0FFF // mask 12 bits for tile ID, type and direction
01
\wx0021 8A 05 8A 05 // if tile is mid-buffer S
\wx001F // else

// For all tiles
5046 * 48	 02 04 1A // ID
85 68 0F // station info param 0/-1; check tile along platform to N
00 \wx1FFF // mask 13 bits for tile ID, type, direction and part
06
\wx8000 8D 05 8D 05 // if tile has no side rail
\wx8000 8D 15 8D 15 // if tile has no side rail
\wx001E 88 05 88 05 // if tile is N part of switch
\wx001F 88 15 88 15 // if tile is S part of switch
\wx0020 8A 05 8A 05 // if tile is mid-buffer N
\wx0020 8A 15 8A 15 // if tile is mid-buffer N
\wx001B // else

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

5047 * 34	 02 04 15 // ID
85
7E 1A // get variety
20 \wx00FF
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
5048 * 32	 02 04 16 // ID
85
1A // all bits on
20 \w4 // val = 4
\2sto 1A
20 \wx0006 // store in register - ground overlay offset
\2rst
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

5049 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
5050 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

5051 * 10	 03 04
01 8C
01
FF \wx0021 // purchase
\wx0020

// == Marshalling yard no middle-rail ===============================

5052 * 50	 00 04 04 01 8D
08 "ISRS"

// Sprite layout
1A 02
// 00 (x)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042D \wx0000 // ground overlay (child)
00 00 80 // x/y/z offset

// 01 (y)
41
\dx00000F8D \wx0002 // ground sprite
10 // register
\dx8000042E \wx0000 // ground overlay (child)
00 00 80 // x/y/z offset

0B 02 // use callback to determine layout
11 FF // pylon placement (all)

5053 * 4	 01 04 01 02
5054 images/newswitchyard4.pcx 5 7 09 31 64 -31 0 // 042D x
5055 images/newswitchyard4.pcx 291 7 09 31 64 -31 0 // 042E y

5056 * 7	 02 04 00 // ID
00 01
\w0

//@@WARNING DISABLE 100
//@@WARNING DISABLE 170

5057 * 23	 02 04 15 // ID
85
7E 7F // get normal/snow/desert offset
20 \wx7FFF
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

// Purchase
5058 * 22	 02 04 16 // ID
85
1A // all bits on
20 \w0 // val = 0
\2sto 1A
00 \wx0010 // store in register - ground sprite offset
01
\wx0000 \w0 \w0
\wx0000

//@@WARNING ENABLE 170
//@@WARNING ENABLE 100

5059 * 14	 02 04 20 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0015 // real sprites

// For purchase list
5060 * 14	 02 04 21 // ID
81 0C // callback
00 FF
01
\wx8000 14 14 // sprite layout
\wx0016 // real sprites

5061 * 10	 03 04
01 8D
01
FF \wx0021 // purchase
\wx0020

// AI station selection
// AI station selection

5062 * 14	 02 04 03 // coal/iron ore/copper ore/etc
81 87 // 0 = source station, 1 = destination station
00 FF
01
03 80 00 00 // if source
04 80 // else

5063 * 14	 02 04 04 // goods
81 87 // 0 = source station, 1 = destination station
00 FF
01
0A 80 00 00 // if source
0C 80 // else

5064 * 14	 02 04 05 // grain/wheat/maize
81 87 // 0 = source station, 1 = destination station
00 FF
01
00 80 00 00 // if source
02 80 // else

5065 * 14	 02 04 06 // steel
81 87 // 0 = source station, 1 = destination station
00 FF
01
0E 80 00 00 // if source
0D 80 // else

5066 * 14	 02 04 07 // wood
81 87 // 0 = source station, 1 = destination station
00 FF
01
06 80 00 00 // if source
0A 80 // else

5067 * 14	 02 04 08 // barrels
81 87 // 0 = source station, 1 = destination station
00 FF
01
11 80 00 00 // if source
0C 80 // else

5068 * 14	 02 04 09 // planks
81 87 // 0 = source station, 1 = destination station
00 FF
01
61 80 00 00 // if source
0A 80 // else

5069 * 14	 02 04 0A // copper
81 87 // 0 = source station, 1 = destination station
00 FF
01
5C 80 00 00 // if source
0D 80 // else

5070 * 14	 02 04 0B // plant fibres
81 87 // 0 = source station, 1 = destination station
00 FF
01
00 80 00 00 // if source
0B 80 // else

5071 * 14	 02 04 0C // paper
81 87 // 0 = source station, 1 = destination station
00 FF
01
0F 80 00 00 // if source
0A 80 // else

5072 * 14	 02 04 0D // fruit
81 87 // 0 = source station, 1 = destination station
00 FF
01
10 80 00 00 // if source
0B 80 // else

5073 * 14	 02 04 0E // sugar
81 87 // 0 = source station, 1 = destination station
00 FF
01
0B 80 00 00 // if source
0C 80 // else

5074 * 186	 02 04 10 // ID
81 40 // cargo type (from translation table)
00 FF
\b44
\wx0003 01 01 // coal
0C 80 02 02 // mail
05 80 03 03 // oil
01 80 04 04 // livestock
\wx0004 05 05 // goods
\wx0005 06 06 // grain
\wx0007 07 07 // wood
\wx0003 08 08 // iron ore
\wx0006 09 09 // steel
07 80 0A 0A // valuables
\wx000C 0B 0B // paper
\wx0004 0C 0C // food
\wx000D 0D 0D // fruit
\wx0003 0E 0E // copper ore
08 80 0F 0F // water
\wx0008 10 10 // rubber
\wx0005 11 12 // wheat/maize
\wx0007 13 13 // tropic wood
07 80 14 15 // gold/diamonds
\wx0003 16 19 // clay/gravel/limestone/sand
05 80 1A 1A // petrol
\wx0009 1B 1B // wood products
\wx000A 1C 1C // copper
\wx0009 1D 1D // lumber
\wx0004 1E 21 // fish/wool/glass/ceramics
0B 80 22 23 // bricks/vehicles
\wx0008 24 25 // fertiliser/dyes
05 80 26 26 // refined products
\wx0008 27 27 // plastic
\wx0003 28 28 // bauxite
\wx0008 29 29 // alcohol
0B 80 2A 2B // building materials/engineering supplies
\wx000B 2C 2C // plant fibres
0B 80 2D 2D // farm supplies
\wx000D 2E 2E // fruit (and veg)
\wx000B 2F 2F // milk
0B 80 30 32 // manufacturing supplies/recyclables/scrap metal
\wx000B 33 34 // sugar beet/sugar cane
\wx0005 35 36 // cereals/oil seed
\wx000E 37 37 // sugar
0B 80 38 38 // coffee
\wx000D 39 39 // beans
\wx0003 3A 3A // nitrates
0B 80 3B 3B // vehicle parts
\wx0000

5075 * 14	 02 04 11 // ID
81 0C // callback
00 FF
01
\wx0010 18 18 // AI selection
\wx0000

5076 * 6	 03 04
00 // n-id = 0 - generic
00
\wx0011

// Station name texts
// Station names
5077 * 30	 04 04 FF 01 00 C5 C3 9E "Grain loading station" 00
5078 * 26	 04 04 FF 01 01 C5 C3 9E "Livestock station" 00
5079 * 19	 04 04 FF 01 02 C5 C3 9E "Grain silo" 00
5080 * 21	 04 04 FF 01 03 C5 C3 9E "Mineral silo" 00
5081 * 25	 04 04 FF 01 04 C5 C3 9E "Mineral unloader" 00
5082 * 23	 04 04 FF 01 05 C5 C3 9E "Oil facilities" 00
5083 * 29	 04 04 FF 01 06 C5 C3 9E "Wood loading station" 00
5084 * 30	 04 04 FF 01 07 C5 C3 9E "High security station" 00
5085 * 30	 04 04 FF 01 08 C5 C3 9E "Water pumping station" 00
5086 * 24	 04 04 FF 01 09 C5 C3 9E "Goods station A" 00
5087 * 24	 04 04 FF 01 0A C5 C3 9E "Goods station B" 00
5088 * 27	 04 04 FF 01 0E C5 C3 9E "Steel mill station" 00
5089 * 24	 04 04 FF 01 0C C5 C3 9E "Freight station" 00
5090 * 30	 04 04 FF 01 0F C5 C3 9E "Paper loading station" 00
5091 * 30	 04 04 FF 01 10 C5 C3 9E "Fruit loading station" 00
5092 * 31	 04 04 FF 01 11 C5 C3 9E "Rubber loading station" 00
5093 * 28	 04 04 FF 01 0B C5 C3 9E "Goods station (low)" 00
5094 * 30	 04 04 FF 01 0D C5 C3 9E "Heavy freight station" 00

5095 * 30	 04 04 FF 01 12 C5 C3 9E "Empty platforms (low)" 00
5096 * 31	 04 04 FF 01 13 C5 C3 9E "Empty platforms (high)" 00
5097 * 38	 04 04 FF 01 14 C5 C3 9E "Single sided platforms (back)" 00
5098 * 39	 04 04 FF 01 15 C5 C3 9E "Single sided platforms (front)" 00
5099 * 17	 04 04 FF 01 16 C5 C3 9E "Ramp (N)" 00
5100 * 17	 04 04 FF 01 17 C5 C3 9E "Ramp (S)" 00
5101 * 30	 04 04 FF 01 18 C5 C3 9E "Single sided ramp (N)" 00
5102 * 30	 04 04 FF 01 19 C5 C3 9E "Single sided ramp (S)" 00
5103 * 22	 04 04 FF 01 1C C5 C3 9E "Buffers (low)" 00
5104 * 23	 04 04 FF 01 1D C5 C3 9E "Buffers (high)" 00
5105 * 25	 04 04 FF 01 1E C5 C3 9E "Empty tile (low)" 00
5106 * 36	 04 04 FF 01 1F C5 C3 9E "Empty tile with fence (low)" 00
5107 * 26	 04 04 FF 01 20 C5 C3 9E "Empty tile (high)" 00
5108 * 28	 04 04 FF 01 1A C5 C3 9E "Ramp (N, non-track)" 00
5109 * 28	 04 04 FF 01 1B C5 C3 9E "Ramp (S, non-track)" 00

5110 * 13	 04 04 FF 01 21 C5 C3 9E "Road" 00
5111 * 24	 04 04 FF 01 22 C5 C3 9E "Road with fence" 00
5112 * 22	 04 04 FF 01 23 C5 C3 9E "Road crossing" 00
5113 * 22	 04 04 FF 01 24 C5 C3 9E "Truck parking" 00
5114 * 23	 04 04 FF 01 25 C5 C3 9E "Road entry (S)" 00
5115 * 23	 04 04 FF 01 26 C5 C3 9E "Road entry (N)" 00
5116 * 32	 04 04 FF 01 27 C5 C3 9E "Road vehicle access (N)" 00
5117 * 32	 04 04 FF 01 28 C5 C3 9E "Road vehicle access (S)" 00

5118 * 20	 04 04 FF 01 29 C5 C3 9E "Water tower" 00
5119 * 20	 04 04 FF 01 2A C5 C3 9E "Tower crane" 00
5120 * 23	 04 04 FF 01 2B C5 C3 9E "Crane on rails" 00
5121 * 23	 04 04 FF 01 2C C5 C3 9E "Overhead crane" 00

5122 * 25	 04 04 FF 01 2D C5 C3 9E "Gantry crane (N)" 00
5123 * 36	 04 04 FF 01 2E C5 C3 9E "Gantry crane (N, non-track)" 00
5124 * 25	 04 04 FF 01 2F C5 C3 9E "Gantry crane (S)" 00
5125 * 36	 04 04 FF 01 30 C5 C3 9E "Gantry crane (S, non-track)" 00
5126 * 34	 04 04 FF 01 31 C5 C3 9E "Gantry crane (N, classic)" 00
5127 * 45	 04 04 FF 01 32 C5 C3 9E "Gantry crane (N, non-track, classic)" 00
5128 * 34	 04 04 FF 01 33 C5 C3 9E "Gantry crane (S, classic)" 00
5129 * 45	 04 04 FF 01 34 C5 C3 9E "Gantry crane (S, non-track, classic)" 00
5130 * 22	 04 04 FF 01 35 C5 C3 9E "Crawler crane" 00

5131 * 22	 04 04 FF 01 36 C5 C3 9E "Farm building" 00
5132 * 28	 04 04 FF 01 37 C5 C3 9E "Small farm building" 00
5133 * 24	 04 04 FF 01 38 C5 C3 9E "Farm facilities" 00
5134 * 20	 04 04 FF 01 39 C5 C3 9E "Grain tanks" 00
5135 * 17	 04 04 FF 01 3A C5 C3 9E "Pig yard" 00
5136 * 21	 04 04 FF 01 3B C5 C3 9E "Cattle docks" 00
5137 * 19	 04 04 FF 01 3C C5 C3 9E "Milk tanks" 00
5138 * 21	 04 04 FF 01 3D C5 C3 9E "Cattle sheds" 00
5139 * 24	 04 04 FF 01 3E C5 C3 9E "Fruit platforms" 00
5140 * 14	 04 04 FF 01 3F C5 C3 9E "Fruit" 00

5141 * 26	 04 04 FF 01 40 C5 C3 9E "Mineral platforms" 00
5142 * 28	 04 04 FF 01 41 C5 C3 9E "Train loading chute" 00
5143 * 26	 04 04 FF 01 42 C5 C3 9E "Conveyor belt (N)" 00
5144 * 26	 04 04 FF 01 43 C5 C3 9E "Conveyor belt (S)" 00
5145 * 21	 04 04 FF 01 44 C5 C3 9E "Mineral pile" 00
5146 * 21	 04 04 FF 01 45 C5 C3 9E "Mining truck" 00
5147 * 29	 04 04 FF 01 46 C5 C3 9E "Bulldozer (minerals)" 00
5148 * 32	 04 04 FF 01 47 C5 C3 9E "Front loader (minerals)" 00

5149 * 26	 04 04 FF 01 48 C5 C3 9E "Oil storage tanks" 00

5150 * 23	 04 04 FF 01 49 C5 C3 9E "Wood platforms" 00
5151 * 18	 04 04 FF 01 4A C5 C3 9E "Wood pile" 00
5152 * 19	 04 04 FF 01 4B C5 C3 9E "Log loader" 00
5153 * 20	 04 04 FF 01 4C C5 C3 9E "Log stacker" 00

5154 * 29	 04 04 FF 01 7E C5 C3 9E "High security shed A" 00
5155 * 29	 04 04 FF 01 7F C5 C3 9E "High security shed B" 00
5156 * 29	 04 04 FF 01 80 C5 C3 9E "High security shed C" 00
5157 * 33	 04 04 FF 01 7C C5 C3 9E "Overpass (low platforms)" 00
5158 * 30	 04 04 FF 01 81 C5 C3 9E "High security parking" 00
5159 * 29	 04 04 FF 01 7D C5 C3 9E "Overpass (non-track)" 00

5160 * 32	 04 04 FF 01 4D C5 C3 9E "General cargo platforms" 00
5161 * 38	 04 04 FF 01 4E C5 C3 9E "General cargo platforms (low)" 00
5162 * 22	 04 04 FF 01 4F C5 C3 9E "General cargo" 00
5163 * 26	 04 04 FF 01 50 C5 C3 9E "Forklift (crates)" 00
5164 * 26	 04 04 FF 01 51 C5 C3 9E "Forklift platform" 00
5165 * 32	 04 04 FF 01 52 C5 C3 9E "Forklift platform (low)" 00
5166 * 28	 04 04 FF 01 53 C5 C3 9E "Container platforms" 00
5167 * 34	 04 04 FF 01 54 C5 C3 9E "Container platforms (low)" 00
5168 * 30	 04 04 FF 01 55 C5 C3 9E "Containers with crane" 00
5169 * 19	 04 04 FF 01 56 C5 C3 9E "Containers" 00
5170 * 30	 04 04 FF 01 57 C5 C3 9E "Forklift (containers)" 00
5171 * 26	 04 04 FF 01 58 C5 C3 9E "Container stacker" 00
5172 * 22	 04 04 FF 01 59 C5 C3 9E "Reach stacker" 00
5173 * 24	 04 04 FF 01 5A C5 C3 9E "Steel platforms" 00
5174 * 14	 04 04 FF 01 5B C5 C3 9E "Steel" 00
5175 * 25	 04 04 FF 01 5C C5 C3 9E "Copper platforms" 00
5176 * 15	 04 04 FF 01 5D C5 C3 9E "Copper" 00
5177 * 25	 04 04 FF 01 5E C5 C3 9E "Barrel platforms" 00
5178 * 31	 04 04 FF 01 5F C5 C3 9E "Barrel platforms (low)" 00
5179 * 16	 04 04 FF 01 60 C5 C3 9E "Barrels" 00
5180 * 25	 04 04 FF 01 61 C5 C3 9E "Timber platforms" 00
5181 * 15	 04 04 FF 01 62 C5 C3 9E "Timber" 00
5182 * 24	 04 04 FF 01 63 C5 C3 9E "Paper platforms" 00
5183 * 14	 04 04 FF 01 64 C5 C3 9E "Paper" 00
5184 * 13	 04 04 FF 01 65 C5 C3 9E "Cars" 00

5185 * 25	 04 04 FF 01 66 C5 C3 9E "Office (classic)" 00
5186 * 15	 04 04 FF 01 67 C5 C3 9E "Office" 00
5187 * 24	 04 04 FF 01 68 C5 C3 9E "Office (modern)" 00
5188 * 30	 04 04 FF 01 69 C5 C3 9E "Office (low, classic)" 00
5189 * 21	 04 04 FF 01 6A C5 C3 9E "Office (low)" 00
5190 * 29	 04 04 FF 01 6B C5 C3 9E "Office (low, modern)" 00
5191 * 20	 04 04 FF 01 6C C5 C3 9E "Main office" 00
5192 * 14	 04 04 FF 01 6D C5 C3 9E "Sheds" 00
5193 * 26	 04 04 FF 01 6E C5 C3 9E "Open storage shed" 00

5194 * 24	 04 04 FF 01 6F C5 C3 9E "Shipping office" 00
5195 * 24	 04 04 FF 01 70 C5 C3 9E "Large warehouse" 00
5196 * 24	 04 04 FF 01 71 C5 C3 9E "Small warehouse" 00
5197 * 25	 04 04 FF 01 72 C5 C3 9E "Modern warehouse" 00
5198 * 24	 04 04 FF 01 73 C5 C3 9E "Brick warehouse" 00
5199 * 25	 04 04 FF 01 74 C5 C3 9E "Storage facility" 00

5200 * 22	 04 04 FF 01 75 C5 C3 9E "Storage tanks" 00
5201 * 19	 04 04 FF 01 76 C5 C3 9E "Train shed" 00

5202 * 32	 04 04 FF 01 77 C5 C3 9E "Freight building (back)" 00
5203 * 33	 04 04 FF 01 78 C5 C3 9E "Freight building (front)" 00
5204 * 26	 04 04 FF 01 79 C5 C3 9E "Freight buildings" 00
5205 * 40	 04 04 FF 01 7A C5 C3 9E "Freight buildings with overpass" 00
5206 * 34	 04 04 FF 01 7B C5 C3 9E "Overpass (high platforms)" 00

5207 * 20	 04 04 FF 01 82 C5 C3 9E "Basic track" 00
5208 * 16	 04 04 FF 01 83 C5 C3 9E "Catwalk" 00
5209 * 17	 04 04 FF 01 84 C5 C3 9E "Crossing" 00
5210 * 14	 04 04 FF 01 85 C5 C3 9E "Tower" 00
5211 * 16	 04 04 FF 01 86 C5 C3 9E "Shelter" 00
5212 * 27	 04 04 FF 01 87 C5 C3 9E "Track switcher (N)" 00
5213 * 27	 04 04 FF 01 88 C5 C3 9E "Track switcher (S)" 00
5214 * 27	 04 04 FF 01 89 C5 C3 9E "Middle buffers (N)" 00
5215 * 27	 04 04 FF 01 8A C5 C3 9E "Middle buffers (S)" 00
5216 * 19	 04 04 FF 01 8B C5 C3 9E "Buffer (N)" 00
5217 * 19	 04 04 FF 01 8C C5 C3 9E "Buffer (S)" 00
5218 * 29	 04 04 FF 01 8D C5 C3 9E "Track no middle-rail" 00

// Station class names
5219 * 22	 04 04 FF 01 00 C4 C3 9E "ISR: Stations" 00
5220 * 22	 04 04 FF 01 12 C4 C3 9E "ISR: Fixtures" 00
5221 * 27	 04 04 FF 01 36 C4 C3 9E "ISR: Raw materials" 00
5222 * 32	 04 04 FF 01 4D C4 C3 9E "ISR: Processed products" 00
5223 * 24	 04 04 FF 01 66 C4 C3 9E "ISR: Facilities" 00
5224 * 30	 04 04 FF 01 82 C4 C3 9E "ISR: Marshalling yard" 00
// Station names

5225 * 24	 04 04 80 01 38 C5 C3 9E "Farm facilities" 00

5226 * 30	 04 04 80 01 57 C5 C3 9E "Forklift (containers)" 00
5227 * 24	 04 04 80 01 5A C5 C3 9E "Steel platforms" 00
5228 * 25	 04 04 80 01 61 C5 C3 9E "Lumber platforms" 00
5229 * 15	 04 04 80 01 62 C5 C3 9E "Lumber" 00

5230 * 14	 04 04 80 01 85 C5 C3 9E "Tower" 00

// Station class names
5231 * 33	 04 04 80 01 82 C4 C3 9E "ISR: Classification yard" 00
// Station names
5232 * 31	 04 04 82 01 00 C5 C3 9E "Getreideverladestation" 00
5233 * 27	 04 04 82 01 01 C5 C3 9E "Viehverladestation" 00
5234 * 22	 04 04 82 01 02 C5 C3 9E "Getreidesilos" 00
5235 * 26	 04 04 82 01 03 C5 C3 9E "Bergwerksgebäude" 00
5236 * 28	 04 04 82 01 04 C5 C3 9E "Minenentladestation" 00
5237 * 28	 04 04 82 01 05 C5 C3 9E "Chemische Industrie" 00
5238 * 27	 04 04 82 01 06 C5 C3 9E "Holzverladestation" 00
5239 * 31	 04 04 82 01 07 C5 C3 9E "Hochsicherheitsbahnhof" 00
5240 * 20	 04 04 82 01 08 C5 C3 9E "Pumpstation" 00
5241 * 24	 04 04 82 01 09 C5 C3 9E "Güterbahnhof A" 00
5242 * 24	 04 04 82 01 0A C5 C3 9E "Güterbahnhof B" 00
5243 * 25	 04 04 82 01 0E C5 C3 9E "Stahlwerkbahnhof" 00
5244 * 24	 04 04 82 01 0C C5 C3 9E "Güterbahnhof C" 00
5245 * 29	 04 04 82 01 0F C5 C3 9E "Papierverladebahnhof" 00
5246 * 31	 04 04 82 01 10 C5 C3 9E "Früchteverladebahnhof" 00
5247 * 32	 04 04 82 01 11 C5 C3 9E "Kautschukverladebahnhof" 00
5248 * 32	 04 04 82 01 0B C5 C3 9E "Güterbahnhof (niedrig)" 00
5249 * 26	 04 04 82 01 0D C5 C3 9E "Schwerlaststation" 00

5250 * 32	 04 04 82 01 12 C5 C3 9E "Leerer Bahnsteig (tief)" 00
5251 * 32	 04 04 82 01 13 C5 C3 9E "Leerer Bahnsteig (hoch)" 00
5252 * 43	 04 04 82 01 14 C5 C3 9E "Einseitiger Bahnsteig (Rückseite)" 00
5253 * 44	 04 04 82 01 15 C5 C3 9E "Einseitiger Bahnsteig (Vorderseite)" 00
5254 * 18	 04 04 82 01 16 C5 C3 9E "Rampe (N)" 00
5255 * 18	 04 04 82 01 17 C5 C3 9E "Rampe (S)" 00
5256 * 29	 04 04 82 01 18 C5 C3 9E "Einseitige Rampe (N)" 00
5257 * 29	 04 04 82 01 19 C5 C3 9E "Einseitige Rampe (S)" 00
5258 * 25	 04 04 82 01 1C C5 C3 9E "Prellbock (tief)" 00
5259 * 25	 04 04 82 01 1D C5 C3 9E "Prellbock (hoch)" 00
5260 * 27	 04 04 82 01 1E C5 C3 9E "Leeres Feld (tief)" 00
5261 * 36	 04 04 82 01 1F C5 C3 9E "Leeres Feld mit Zaun (tief)" 00
5262 * 27	 04 04 82 01 20 C5 C3 9E "Leeres Feld (hoch)" 00
5263 * 33	 04 04 82 01 1A C5 C3 9E "Rampe (N, ohne Schienen)" 00
5264 * 33	 04 04 82 01 1B C5 C3 9E "Rampe (S, ohne Schienen)" 00

5265 * 16	 04 04 82 01 21 C5 C3 9E "Straße" 00
5266 * 25	 04 04 82 01 22 C5 C3 9E "Straße mit Zaun" 00
5267 * 22	 04 04 82 01 23 C5 C3 9E "Bahnübergang" 00
5268 * 20	 04 04 82 01 24 C5 C3 9E "Parkplätze" 00
5269 * 28	 04 04 82 01 25 C5 C3 9E "Straßenzufahrt (S)" 00
5270 * 28	 04 04 82 01 26 C5 C3 9E "Straßenzufahrt (N)" 00
5271 * 24	 04 04 82 01 27 C5 C3 9E "LKW-Zufahrt (N)" 00
5272 * 24	 04 04 82 01 28 C5 C3 9E "LKW-Zufahrt (S)" 00

5273 * 19	 04 04 82 01 29 C5 C3 9E "Wasserturm" 00
5274 * 17	 04 04 82 01 2A C5 C3 9E "Turmkran" 00
5275 * 21	 04 04 82 01 2B C5 C3 9E "Schienenkran" 00
5276 * 21	 04 04 82 01 2C C5 C3 9E "Brückenkran" 00

5277 * 21	 04 04 82 01 2D C5 C3 9E "Bockkran (N)" 00
5278 * 33	 04 04 82 01 2E C5 C3 9E "Bockkran (N, o. Schiene)" 00
5279 * 21	 04 04 82 01 2F C5 C3 9E "Bockkran (S)" 00
5280 * 33	 04 04 82 01 30 C5 C3 9E "Bockkran (S, o. Schiene)" 00
5281 * 32	 04 04 82 01 31 C5 C3 9E "Bockkran (N, klassisch)" 00
5282 * 44	 04 04 82 01 32 C5 C3 9E "Bockkran (N, o. Scheine, klassisch)" 00
5283 * 32	 04 04 82 01 33 C5 C3 9E "Bockkran (S, klassisch)" 00
5284 * 44	 04 04 82 01 34 C5 C3 9E "Bockkran (S, o. Scheine, klassisch)" 00
5285 * 21	 04 04 82 01 35 C5 C3 9E "Raupenbagger" 00

5286 * 26	 04 04 82 01 36 C5 C3 9E "Bauernhofgebäude" 00
5287 * 34	 04 04 82 01 37 C5 C3 9E "Kleines Bauernhofgebäude" 00
5288 * 31	 04 04 82 01 38 C5 C3 9E "Bauernhofeinrichtungen" 00
5289 * 25	 04 04 82 01 39 C5 C3 9E "Getreidespeicher" 00
5290 * 38	 04 04 82 01 3A C5 C3 9E "Viehverladestation (Schweine)" 00
5291 * 36	 04 04 82 01 3B C5 C3 9E "Viehverladestation (Rinder)" 00
5292 * 20	 04 04 82 01 3C C5 C3 9E "Milchkessel" 00
5293 * 20	 04 04 82 01 3D C5 C3 9E "Viehställe" 00
5294 * 34	 04 04 82 01 3E C5 C3 9E "Verladestation (Früchte)" 00
5295 * 17	 04 04 82 01 3F C5 C3 9E "Früchte" 00

5296 * 19	 04 04 82 01 40 C5 C3 9E "Erzbahnhof" 00
5297 * 17	 04 04 82 01 41 C5 C3 9E "Schütte" 00
5298 * 24	 04 04 82 01 42 C5 C3 9E "Förderband (N)" 00
5299 * 24	 04 04 82 01 43 C5 C3 9E "Förderband (S)" 00
5300 * 22	 04 04 82 01 44 C5 C3 9E "Bodenschätze" 00
5301 * 34	 04 04 82 01 45 C5 C3 9E "Muldenkipper (Mineralien)" 00
5302 * 31	 04 04 82 01 46 C5 C3 9E "Bulldozer (Mineralien)" 00
5303 * 32	 04 04 82 01 47 C5 C3 9E "Frontlader (Mineralien)" 00

5304 * 25	 04 04 82 01 48 C5 C3 9E "Chemikalientanks" 00

5305 * 30	 04 04 82 01 49 C5 C3 9E "Verladerampe mit Holz" 00
5306 * 13	 04 04 82 01 4A C5 C3 9E "Holz" 00
5307 * 18	 04 04 82 01 4B C5 C3 9E "Holzlader" 00
5308 * 20	 04 04 82 01 4C C5 C3 9E "Holzstapler" 00

5309 * 34	 04 04 82 01 7E C5 C3 9E "Hochsicherheitsgebäude A" 00
5310 * 34	 04 04 82 01 7F C5 C3 9E "Hochsicherheitsgebäude B" 00
5311 * 34	 04 04 82 01 80 C5 C3 9E "Hochsicherheitsgebäude C" 00
5312 * 44	 04 04 82 01 7C C5 C3 9E "Überführung (Niedriger Bahnsteig)" 00
5313 * 28	 04 04 82 01 81 C5 C3 9E "Wertsachenparkplatz" 00
5314 * 38	 04 04 82 01 7D C5 C3 9E "Überführung (ohne Schienen)" 00

5315 * 32	 04 04 82 01 4D C5 C3 9E "Verladerampe mit Kisten" 00
5316 * 42	 04 04 82 01 4E C5 C3 9E "Verladerampe mit Kisten (niedrig)" 00
5317 * 21	 04 04 82 01 4F C5 C3 9E "Allg. Fracht" 00
5318 * 30	 04 04 82 01 50 C5 C3 9E "Gabelstapler (Kisten)" 00
5319 * 37	 04 04 82 01 51 C5 C3 9E "Verladerampe mit Gabelstaper" 00
5320 * 48	 04 04 82 01 52 C5 C3 9E "Verladerampe mit Gabelstapler (niedrig)" 00
5321 * 36	 04 04 82 01 53 C5 C3 9E "Verladerampe mit Containern" 00
5322 * 46	 04 04 82 01 54 C5 C3 9E "Verladerampe mit Containern (niedrig)" 00
5323 * 27	 04 04 82 01 55 C5 C3 9E "Container mit Kran" 00
5324 * 18	 04 04 82 01 56 C5 C3 9E "Container" 00
5325 * 33	 04 04 82 01 57 C5 C3 9E "Gabelstapler (Container)" 00
5326 * 25	 04 04 82 01 58 C5 C3 9E "Containerstapler" 00
5327 * 21	 04 04 82 01 59 C5 C3 9E "Greifstapler" 00
5328 * 31	 04 04 82 01 5A C5 C3 9E "Verladerampe mit Stahl" 00
5329 * 14	 04 04 82 01 5B C5 C3 9E "Stahl" 00
5330 * 32	 04 04 82 01 5C C5 C3 9E "Verladerampe mit Kupfer" 00
5331 * 15	 04 04 82 01 5D C5 C3 9E "Kupfer" 00
5332 * 34	 04 04 82 01 5E C5 C3 9E "Verladerampe mit Fässern" 00
5333 * 44	 04 04 82 01 5F C5 C3 9E "Verladerampe mit Fässern (niedrig)" 00
5334 * 16	 04 04 82 01 60 C5 C3 9E "Fässer" 00
5335 * 34	 04 04 82 01 61 C5 C3 9E "Verladerampe mit Brettern" 00
5336 * 16	 04 04 82 01 62 C5 C3 9E "Bretter" 00
5337 * 32	 04 04 82 01 63 C5 C3 9E "Verladerampe mit Papier" 00
5338 * 15	 04 04 82 01 64 C5 C3 9E "Papier" 00
5339 * 14	 04 04 82 01 65 C5 C3 9E "Autos" 00

5340 * 34	 04 04 82 01 66 C5 C3 9E "Bürogebäude (klassisch)" 00
5341 * 22	 04 04 82 01 67 C5 C3 9E "Bürogebäude" 00
5342 * 31	 04 04 82 01 68 C5 C3 9E "Bürogebäude (modern)" 00
5343 * 40	 04 04 82 01 69 C5 C3 9E "Bürogebäude (tief, klassisch)" 00
5344 * 29	 04 04 82 01 6A C5 C3 9E "Bürogebäude (tief)" 00
5345 * 37	 04 04 82 01 6B C5 C3 9E "Bürogebäude (tief, modern)" 00
5346 * 22	 04 04 82 01 6C C5 C3 9E "Hauptgebäude" 00
5347 * 17	 04 04 82 01 6D C5 C3 9E "Schuppen" 00
5348 * 30	 04 04 82 01 6E C5 C3 9E "Offener Lagerschuppen" 00

5349 * 21	 04 04 82 01 6F C5 C3 9E "Versandbüro" 00
5350 * 26	 04 04 82 01 70 C5 C3 9E "Großes Lagerhaus" 00
5351 * 26	 04 04 82 01 71 C5 C3 9E "Kleines Lagerhaus" 00
5352 * 27	 04 04 82 01 72 C5 C3 9E "Modernes Lagerhaus" 00
5353 * 24	 04 04 82 01 73 C5 C3 9E "Ziegellagerhaus" 00
5354 * 21	 04 04 82 01 74 C5 C3 9E "Lagerhäuser" 00

5355 * 19	 04 04 82 01 75 C5 C3 9E "Lagertanks" 00
5356 * 19	 04 04 82 01 76 C5 C3 9E "Gleishalle" 00

5357 * 32	 04 04 82 01 77 C5 C3 9E "Lagerhalle (Rückseite)" 00
5358 * 33	 04 04 82 01 78 C5 C3 9E "Lagerhalle (Vorderseite)" 00
5359 * 19	 04 04 82 01 79 C5 C3 9E "Lagerhalle" 00
5360 * 37	 04 04 82 01 7A C5 C3 9E "Lagerhalle mit Überführung" 00
5361 * 40	 04 04 82 01 7B C5 C3 9E "Überführung (hoher Bahnsteig)" 00

5362 * 16	 04 04 82 01 82 C5 C3 9E "Schiene" 00
5363 * 13	 04 04 82 01 83 C5 C3 9E "Steg" 00
5364 * 18	 04 04 82 01 84 C5 C3 9E "Übergang" 00
5365 * 13	 04 04 82 01 85 C5 C3 9E "Turm" 00
5366 * 17	 04 04 82 01 86 C5 C3 9E "Schuppen" 00
5367 * 19	 04 04 82 01 87 C5 C3 9E "Weiche (N)" 00
5368 * 19	 04 04 82 01 88 C5 C3 9E "Weiche (S)" 00
5369 * 30	 04 04 82 01 89 C5 C3 9E "Mittelprellböcke (N)" 00
5370 * 30	 04 04 82 01 8A C5 C3 9E "Mittelprellböcke (S)" 00
5371 * 22	 04 04 82 01 8B C5 C3 9E "Prellbock (N)" 00
5372 * 22	 04 04 82 01 8C C5 C3 9E "Prellbock (S)" 00
5373 * 27	 04 04 82 01 8D C5 C3 9E "ohne Mittelschiene" 00

// Station class names
5374 * 23	 04 04 82 01 00 C4 C3 9E "ISR: Bahnhöfe" 00
5375 * 22	 04 04 82 01 12 C4 C3 9E "ISR: Zubehör" 00
5376 * 23	 04 04 82 01 36 C4 C3 9E "ISR: Rohstoffe" 00
5377 * 32	 04 04 82 01 4D C4 C3 9E "ISR: Sekundärer Sektor" 00
5378 * 27	 04 04 82 01 66 C4 C3 9E "ISR: Einrichtungen" 00
5379 * 28	 04 04 82 01 82 C4 C3 9E "ISR: Rangierbahnhof" 00
// Station names
5380 * 37	 04 04 83 01 00 C5 C3 9E "Gare de chargement de grains" 00
5381 * 24	 04 04 83 01 01 C5 C3 9E "Gare de bétail" 00
5382 * 23	 04 04 83 01 02 C5 C3 9E "Silo à grains" 00
5383 * 26	 04 04 83 01 03 C5 C3 9E "Silo à minéraux" 00
5384 * 31	 04 04 83 01 04 C5 C3 9E "Rampe de déchargement" 00
5385 * 32	 04 04 83 01 05 C5 C3 9E "Equipements pétroliers" 00
5386 * 35	 04 04 83 01 06 C5 C3 9E "Gare de chargement à bois" 00
5387 * 33	 04 04 83 01 07 C5 C3 9E "Gare de haute sécurité" 00
5388 * 30	 04 04 83 01 08 C5 C3 9E "Gare de pompage d'eau" 00
5389 * 24	 04 04 83 01 09 C5 C3 9E "Gare de biens A" 00
5390 * 24	 04 04 83 01 0A C5 C3 9E "Gare de biens B" 00
5391 * 24	 04 04 83 01 0E C5 C3 9E "Gare d'aciérie" 00
5392 * 22	 04 04 83 01 0C C5 C3 9E "Gare de frets" 00
5393 * 37	 04 04 83 01 0F C5 C3 9E "Gare à chargement de papier" 00
5394 * 37	 04 04 83 01 10 C5 C3 9E "Gare à chargement de fruits" 00
5395 * 41	 04 04 83 01 11 C5 C3 9E "Gare à chargement de caoutchouc" 00
5396 * 37	 04 04 83 01 0B C5 C3 9E "Gare de marchandises (basse)" 00
5397 * 27	 04 04 83 01 0D C5 C3 9E "Gare de fret lourd" 00

5398 * 26	 04 04 83 01 12 C5 C3 9E "Quai vide (basse)" 00
5399 * 26	 04 04 83 01 13 C5 C3 9E "Quai vide (haute)" 00
5400 * 40	 04 04 83 01 14 C5 C3 9E "Quais à simple face (arrière)" 00
5401 * 38	 04 04 83 01 15 C5 C3 9E "Quais à simple face (devant)" 00
5402 * 18	 04 04 83 01 16 C5 C3 9E "Rampe (N)" 00
5403 * 18	 04 04 83 01 17 C5 C3 9E "Rampe (S)" 00
5404 * 33	 04 04 83 01 18 C5 C3 9E "Rampe à simple face (N)" 00
5405 * 33	 04 04 83 01 19 C5 C3 9E "Rampe à simple face (S)" 00
5406 * 22	 04 04 83 01 1C C5 C3 9E "Tampons (bas)" 00
5407 * 24	 04 04 83 01 1D C5 C3 9E "Tampons (hauts)" 00
5408 * 26	 04 04 83 01 1E C5 C3 9E "Case vide (basse)" 00
5409 * 40	 04 04 83 01 1F C5 C3 9E "Case vide avec clôture (basse)" 00
5410 * 26	 04 04 83 01 20 C5 C3 9E "Case vide (haute)" 00
5411 * 29	 04 04 83 01 1A C5 C3 9E "Rampe (N, sans voie)" 00
5412 * 29	 04 04 83 01 1B C5 C3 9E "Rampe (S, sans voie)" 00

5413 * 14	 04 04 83 01 21 C5 C3 9E "Route" 00
5414 * 28	 04 04 83 01 22 C5 C3 9E "Route avec clôture" 00
5415 * 26	 04 04 83 01 23 C5 C3 9E "Passage à niveau" 00
5416 * 27	 04 04 83 01 24 C5 C3 9E "Parking de camions" 00
5417 * 34	 04 04 83 01 25 C5 C3 9E "Entrée de véhicules (S)" 00
5418 * 34	 04 04 83 01 26 C5 C3 9E "Entrée de véhicules (N)" 00
5419 * 42	 04 04 83 01 27 C5 C3 9E "Rampe d'accès aux véhicules (N)" 00
5420 * 42	 04 04 83 01 28 C5 C3 9E "Rampe d'accès aux véhicules (S)" 00

5421 * 23	 04 04 83 01 29 C5 C3 9E "Château d'eau" 00
5422 * 13	 04 04 83 01 2A C5 C3 9E "Grue" 00
5423 * 23	 04 04 83 01 2B C5 C3 9E "Grue sur rails" 00
5424 * 21	 04 04 83 01 2C C5 C3 9E "Pont roulant" 00

5425 * 30	 04 04 83 01 2D C5 C3 9E "Grue sur portique (N)" 00
5426 * 41	 04 04 83 01 2E C5 C3 9E "Grue sur portique (N, sans rail)" 00
5427 * 30	 04 04 83 01 2F C5 C3 9E "Grue sur portique (S)" 00
5428 * 41	 04 04 83 01 30 C5 C3 9E "Grue sur portique (S, sans rail)" 00
5429 * 41	 04 04 83 01 31 C5 C3 9E "Grue sur portique (N, classique)" 00
5430 * 52	 04 04 83 01 32 C5 C3 9E "Grue sur portique (N, sans rail, classique)" 00
5431 * 41	 04 04 83 01 33 C5 C3 9E "Grue sur portique (S, classique)" 00
5432 * 52	 04 04 83 01 34 C5 C3 9E "Grue sur portique (S, sans rail, classique)" 00
5433 * 27	 04 04 83 01 35 C5 C3 9E "Grue sur chenilles" 00

5434 * 26	 04 04 83 01 36 C5 C3 9E "Bâtiment fermier" 00
5435 * 32	 04 04 83 01 37 C5 C3 9E "Petit bâtiment fermier" 00
5436 * 27	 04 04 83 01 38 C5 C3 9E "Equipement fermier" 00
5437 * 29	 04 04 83 01 39 C5 C3 9E "Réservoir de grains" 00
5438 * 18	 04 04 83 01 3A C5 C3 9E "Porcherie" 00
5439 * 26	 04 04 83 01 3B C5 C3 9E "Enclos à bétail" 00
5440 * 28	 04 04 83 01 3C C5 C3 9E "Réservoirs de lait" 00
5441 * 27	 04 04 83 01 3D C5 C3 9E "Hangars de bétail" 00
5442 * 24	 04 04 83 01 3E C5 C3 9E "Quais à fruits" 00
5443 * 14	 04 04 83 01 3F C5 C3 9E "Fruit" 00

5444 * 26	 04 04 83 01 40 C5 C3 9E "Quai à minéraux" 00
5445 * 32	 04 04 83 01 41 C5 C3 9E "Chargement de minéraux" 00
5446 * 26	 04 04 83 01 42 C5 C3 9E "Tapis roulant (N)" 00
5447 * 26	 04 04 83 01 43 C5 C3 9E "Tapis roulant (S)" 00
5448 * 26	 04 04 83 01 44 C5 C3 9E "Pile de minéraux" 00
5449 * 33	 04 04 83 01 45 C5 C3 9E "Camion-benne (minéraux)" 00
5450 * 28	 04 04 83 01 46 C5 C3 9E "Bouteur (minéraux)" 00
5451 * 37	 04 04 83 01 47 C5 C3 9E "Chargeur frontal (minéraux)" 00

5452 * 40	 04 04 83 01 48 C5 C3 9E "Réservoir d'huiles de pétrole" 00

5453 * 21	 04 04 83 01 49 C5 C3 9E "Quai de bois" 00
5454 * 21	 04 04 83 01 4A C5 C3 9E "Pile de bois" 00
5455 * 30	 04 04 83 01 4B C5 C3 9E "Chargeuse forestière" 00
5456 * 30	 04 04 83 01 4C C5 C3 9E "Empileuse forestière" 00

5457 * 40	 04 04 83 01 7E C5 C3 9E "Entrepôt de haute sécurité A" 00
5458 * 40	 04 04 83 01 7F C5 C3 9E "Entrepôt de haute sécurité B" 00
5459 * 40	 04 04 83 01 80 C5 C3 9E "Entrepôt de haute sécurité C" 00
5460 * 39	 04 04 83 01 7C C5 C3 9E "Passage supérieur (quais bas)" 00
5461 * 42	 04 04 83 01 81 C5 C3 9E "Stationnement de haute sécurité" 00
5462 * 39	 04 04 83 01 7D C5 C3 9E "Passage supérieur (sans voie)" 00

5463 * 46	 04 04 83 01 4D C5 C3 9E "Quai de caisses (toutes marchandises)" 00
5464 * 54	 04 04 83 01 4E C5 C3 9E "Quai de caisses (toutes marchandises) (basse)" 00
5465 * 46	 04 04 83 01 4F C5 C3 9E "Pile de caisses (toutes marchandises)" 00
5466 * 38	 04 04 83 01 50 C5 C3 9E "Chariot élévateur (caisses)" 00
5467 * 37	 04 04 83 01 51 C5 C3 9E "Quai avec chariot à fourche" 00
5468 * 41	 04 04 83 01 52 C5 C3 9E "Quai bas avec chariot à fourche" 00
5469 * 41	 04 04 83 01 53 C5 C3 9E "Quai de chargement de conteneurs" 00
5470 * 49	 04 04 83 01 54 C5 C3 9E "Quai de chargement de conteneurs (basse)" 00
5471 * 29	 04 04 83 01 55 C5 C3 9E "Conteneurs avec grue" 00
5472 * 19	 04 04 83 01 56 C5 C3 9E "Conteneurs" 00
5473 * 41	 04 04 83 01 57 C5 C3 9E "Chariot élévateur (conteneurs)" 00
5474 * 30	 04 04 83 01 58 C5 C3 9E "Gerbeur à conteneurs" 00
5475 * 40	 04 04 83 01 59 C5 C3 9E "Gerbeur à tablier rétractable" 00
5476 * 21	 04 04 83 01 5A C5 C3 9E "Quai d'acier" 00
5477 * 14	 04 04 83 01 5B C5 C3 9E "Acier" 00
5478 * 23	 04 04 83 01 5C C5 C3 9E "Quai de cuivre" 00
5479 * 15	 04 04 83 01 5D C5 C3 9E "Cuivre" 00
5480 * 23	 04 04 83 01 5E C5 C3 9E "Quai de barils" 00
5481 * 31	 04 04 83 01 5F C5 C3 9E "Quai de barils (basse)" 00
5482 * 15	 04 04 83 01 60 C5 C3 9E "Barils" 00
5483 * 25	 04 04 83 01 61 C5 C3 9E "Quai de planches" 00
5484 * 17	 04 04 83 01 62 C5 C3 9E "Planches" 00
5485 * 24	 04 04 83 01 63 C5 C3 9E "Quais à papier" 00
5486 * 15	 04 04 83 01 64 C5 C3 9E "Papier" 00
5487 * 17	 04 04 83 01 65 C5 C3 9E "Voitures" 00

5488 * 27	 04 04 83 01 66 C5 C3 9E "Bureau (classique)" 00
5489 * 15	 04 04 83 01 67 C5 C3 9E "Bureau" 00
5490 * 25	 04 04 83 01 68 C5 C3 9E "Bureau (moderne)" 00
5491 * 32	 04 04 83 01 69 C5 C3 9E "Bureau (bas, classique)" 00
5492 * 21	 04 04 83 01 6A C5 C3 9E "Bureau (bas)" 00
5493 * 30	 04 04 83 01 6B C5 C3 9E "Bureau (bas, moderne)" 00
5494 * 25	 04 04 83 01 6C C5 C3 9E "Bureau principal" 00
5495 * 16	 04 04 83 01 6D C5 C3 9E "Hangars" 00
5496 * 34	 04 04 83 01 6E C5 C3 9E "Hangar de stockage ouvert" 00

5497 * 29	 04 04 83 01 6F C5 C3 9E "Bureau d'expédition" 00
5498 * 24	 04 04 83 01 70 C5 C3 9E "Grand entrepôt" 00
5499 * 24	 04 04 83 01 71 C5 C3 9E "Petit entrepôt" 00
5500 * 26	 04 04 83 01 72 C5 C3 9E "Entrepôt moderne" 00
5501 * 29	 04 04 83 01 73 C5 C3 9E "Entrepôt en briques" 00
5502 * 33	 04 04 83 01 74 C5 C3 9E "Installation de stockage" 00

5503 * 31	 04 04 83 01 75 C5 C3 9E "Réservoir de stockage" 00
5504 * 25	 04 04 83 01 76 C5 C3 9E "Hangar de trains" 00

5505 * 50	 04 04 83 01 77 C5 C3 9E "Bâtiment de fret (sur le quais arrière)" 00
5506 * 50	 04 04 83 01 78 C5 C3 9E "Bâtiment de fret (sur le quais frontale)" 00
5507 * 27	 04 04 83 01 79 C5 C3 9E "Bâtiments de fret" 00
5508 * 51	 04 04 83 01 7A C5 C3 9E "Bâtiments de fret avec passage supérieur" 00
5509 * 42	 04 04 83 01 7B C5 C3 9E "Passage supérieur (quais hautes)" 00

5510 * 21	 04 04 83 01 82 C5 C3 9E "Rail basique" 00
5511 * 19	 04 04 83 01 83 C5 C3 9E "Passerelle" 00
5512 * 19	 04 04 83 01 84 C5 C3 9E "Croisement" 00
5513 * 13	 04 04 83 01 85 C5 C3 9E "Tour" 00
5514 * 13	 04 04 83 01 86 C5 C3 9E "Abri" 00
5515 * 23	 04 04 83 01 87 C5 C3 9E "Aiguillage (N)" 00
5516 * 23	 04 04 83 01 88 C5 C3 9E "Aiguillage (S)" 00
5517 * 30	 04 04 83 01 89 C5 C3 9E "Tampons au milieu (N)" 00
5518 * 30	 04 04 83 01 8A C5 C3 9E "Tampons au milieu (S)" 00
5519 * 20	 04 04 83 01 8B C5 C3 9E "Tampons (N)" 00
5520 * 20	 04 04 83 01 8C C5 C3 9E "Tampons (S)" 00
5521 * 34	 04 04 83 01 8D C5 C3 9E "Rails sans rail au milieu" 00

// Station class names
5522 * 18	 04 04 83 01 00 C4 C3 9E "ISR: Gare" 00
5523 * 25	 04 04 83 01 12 C4 C3 9E "ISR: Accessoires" 00
5524 * 34	 04 04 83 01 36 C4 C3 9E "ISR: Matières premières" 00
5525 * 35	 04 04 83 01 4D C4 C3 9E "ISR: Produits transformés" 00
5526 * 27	 04 04 83 01 66 C4 C3 9E "ISR: Installations" 00
5527 * 28	 04 04 83 01 82 C4 C3 9E "ISR: Gare de triage" 00
// Station names
5528 * 36	 04 04 84 01 00 C5 C3 9E "Estación de carga de grano" 00
5529 * 28	 04 04 84 01 01 C5 C3 9E "Estación de ganado" 00
5530 * 22	 04 04 84 01 02 C5 C3 9E "Silo de grano" 00
5531 * 26	 04 04 84 01 03 C5 C3 9E "Silo de minerales" 00
5532 * 30	 04 04 84 01 04 C5 C3 9E "Descarga de minerales" 00
5533 * 35	 04 04 84 01 05 C5 C3 9E "Instalaciones de petróleo" 00
5534 * 37	 04 04 84 01 06 C5 C3 9E "Estación de carga de madera" 00
5535 * 36	 04 04 84 01 07 C5 C3 9E "Estación de alta seguridad" 00
5536 * 26	 04 04 84 01 08 C5 C3 9E "Estación de agua" 00
5537 * 35	 04 04 84 01 09 C5 C3 9E "Estación de mercancías A" 00
5538 * 35	 04 04 84 01 0A C5 C3 9E "Estación de mercancías B" 00
5539 * 32	 04 04 84 01 0E C5 C3 9E "Estación de fundición" 00
5540 * 27	 04 04 84 01 0C C5 C3 9E "Estación de carga" 00
5541 * 36	 04 04 84 01 0F C5 C3 9E "Estación de carga de papel" 00
5542 * 36	 04 04 84 01 10 C5 C3 9E "Estación de carga de fruta" 00
5543 * 37	 04 04 84 01 11 C5 C3 9E "Estación de carga de caucho" 00
5544 * 40	 04 04 84 01 0B C5 C3 9E "Estación de mercancías (bajo)" 00
5545 * 34	 04 04 84 01 0D C5 C3 9E "Estación de carga pesada" 00

5546 * 35	 04 04 84 01 12 C5 C3 9E "Plataformas vacías (bajo)" 00
5547 * 35	 04 04 84 01 13 C5 C3 9E "Plataformas vacías (alto)" 00
5548 * 42	 04 04 84 01 14 C5 C3 9E "Plataformas de una cara (reverso)" 00
5549 * 42	 04 04 84 01 15 C5 C3 9E "Plataformas de una cara (frontal)" 00
5550 * 18	 04 04 84 01 16 C5 C3 9E "Rampa (N)" 00
5551 * 18	 04 04 84 01 17 C5 C3 9E "Rampa (S)" 00
5552 * 30	 04 04 84 01 18 C5 C3 9E "Rampa de una cara (N)" 00
5553 * 30	 04 04 84 01 19 C5 C3 9E "Rampa de una cara (S)" 00
5554 * 21	 04 04 84 01 1C C5 C3 9E "Topes (bajo)" 00
5555 * 21	 04 04 84 01 1D C5 C3 9E "Topes (alto)" 00
5556 * 30	 04 04 84 01 1E C5 C3 9E "Terreno vacío (bajo)" 00
5557 * 40	 04 04 84 01 1F C5 C3 9E "Terreno vacío con valla (bajo)" 00
5558 * 30	 04 04 84 01 20 C5 C3 9E "Terreno vacío (alto)" 00
5559 * 29	 04 04 84 01 1A C5 C3 9E "Rampa (N, sin vías)" 00
5560 * 29	 04 04 84 01 1B C5 C3 9E "Rampa (S, sin vías)" 00

5561 * 18	 04 04 84 01 21 C5 C3 9E "Carretera" 00
5562 * 28	 04 04 84 01 22 C5 C3 9E "Carretera con valla" 00
5563 * 21	 04 04 84 01 23 C5 C3 9E "Paso a nivel" 00
5564 * 21	 04 04 84 01 24 C5 C3 9E "Aparcamiento" 00
5565 * 33	 04 04 84 01 25 C5 C3 9E "Entrada de carretera (S)" 00
5566 * 33	 04 04 84 01 26 C5 C3 9E "Entrada de carretera (N)" 00
5567 * 31	 04 04 84 01 27 C5 C3 9E "Acceso de camiones (N)" 00
5568 * 31	 04 04 84 01 28 C5 C3 9E "Acceso de camiones (S)" 00

5569 * 22	 04 04 84 01 29 C5 C3 9E "Torre de agua" 00
5570 * 23	 04 04 84 01 2A C5 C3 9E "Grúa de torre" 00
5571 * 27	 04 04 84 01 2B C5 C3 9E "Grúa sobre railes" 00
5572 * 22	 04 04 84 01 2C C5 C3 9E "Grúa elevada" 00

5573 * 28	 04 04 84 01 2D C5 C3 9E "Grúa de puerto (N)" 00
5574 * 39	 04 04 84 01 2E C5 C3 9E "Grúa de puerto (N, sin vías)" 00
5575 * 28	 04 04 84 01 2F C5 C3 9E "Grúa de puerto (S)" 00
5576 * 39	 04 04 84 01 30 C5 C3 9E "Grúa de puerto (S, sin vías)" 00
5577 * 38	 04 04 84 01 31 C5 C3 9E "Grúa de puerto (N, clásica)" 00
5578 * 49	 04 04 84 01 32 C5 C3 9E "Grúa de puerto (N, sin vías, clásica)" 00
5579 * 38	 04 04 84 01 33 C5 C3 9E "Grúa de puerto (S, clásica)" 00
5580 * 49	 04 04 84 01 34 C5 C3 9E "Grúa de puerto (S, sin vías, clásica)" 00
5581 * 24	 04 04 84 01 35 C5 C3 9E "Grúa de orugas" 00

5582 * 27	 04 04 84 01 36 C5 C3 9E "Edificio de granja" 00
5583 * 36	 04 04 84 01 37 C5 C3 9E "Edificio pequeño de granja" 00
5584 * 32	 04 04 84 01 38 C5 C3 9E "Instalaciones de granja" 00
5585 * 25	 04 04 84 01 39 C5 C3 9E "Tanques de grano" 00
5586 * 25	 04 04 84 01 3A C5 C3 9E "Corral de cerdos" 00
5587 * 24	 04 04 84 01 3B C5 C3 9E "Redil de ganado" 00
5588 * 25	 04 04 84 01 3C C5 C3 9E "Tanques de leche" 00
5589 * 28	 04 04 84 01 3D C5 C3 9E "Cobertizo de ganado" 00
5590 * 29	 04 04 84 01 3E C5 C3 9E "Plataformas de fruta" 00
5591 * 14	 04 04 84 01 3F C5 C3 9E "Fruta" 00

5592 * 32	 04 04 84 01 40 C5 C3 9E "Plataforma de minerales" 00
5593 * 15	 04 04 84 01 41 C5 C3 9E "Embudo" 00
5594 * 33	 04 04 84 01 42 C5 C3 9E "Cinta transportadora (N)" 00
5595 * 33	 04 04 84 01 43 C5 C3 9E "Cinta transportadora (S)" 00
5596 * 26	 04 04 84 01 44 C5 C3 9E "Pila de minerales" 00
5597 * 23	 04 04 84 01 45 C5 C3 9E "Camión minero" 00
5598 * 30	 04 04 84 01 46 C5 C3 9E "Bulldozer (minerales)" 00
5599 * 35	 04 04 84 01 47 C5 C3 9E "Pala cargadora (minerales)" 00

5600 * 43	 04 04 84 01 48 C5 C3 9E "Tanques de almacenaje de petróleo" 00

5601 * 30	 04 04 84 01 49 C5 C3 9E "Plataformas de madera" 00
5602 * 23	 04 04 84 01 4A C5 C3 9E "Pila de madera" 00
5603 * 28	 04 04 84 01 4B C5 C3 9E "Cargador de troncos" 00
5604 * 28	 04 04 84 01 4C C5 C3 9E "Apilador de troncos" 00

5605 * 33	 04 04 84 01 7E C5 C3 9E "Nave de alta seguridad A" 00
5606 * 33	 04 04 84 01 7F C5 C3 9E "Nave de alta seguridad B" 00
5607 * 33	 04 04 84 01 80 C5 C3 9E "Nave de alta seguridad C" 00
5608 * 41	 04 04 84 01 7C C5 C3 9E "Paso elevado (plataformas bajas)" 00
5609 * 39	 04 04 84 01 81 C5 C3 9E "Aparcamiento de alta seguridad" 00
5610 * 33	 04 04 84 01 7D C5 C3 9E "Paso elevado (sin vías)" 00

5611 * 37	 04 04 84 01 4D C5 C3 9E "Plataformas de carga general" 00
5612 * 44	 04 04 84 01 4E C5 C3 9E "Plataformas de carga general (bajo)" 00
5613 * 22	 04 04 84 01 4F C5 C3 9E "Carga general" 00
5614 * 37	 04 04 84 01 50 C5 C3 9E "Carretilla elevadora (cajas)" 00
5615 * 44	 04 04 84 01 51 C5 C3 9E "Plataforma con carretilla elevadora" 00
5616 * 51	 04 04 84 01 52 C5 C3 9E "Plataforma con carretilla elevadora (bajo)" 00
5617 * 45	 04 04 84 01 53 C5 C3 9E "Plataformas de carga de contenedores" 00
5618 * 43	 04 04 84 01 54 C5 C3 9E "Plataformas de contenedores (bajo)" 00
5619 * 31	 04 04 84 01 55 C5 C3 9E "Contenedores con grúa" 00
5620 * 21	 04 04 84 01 56 C5 C3 9E "Contenedores" 00
5621 * 44	 04 04 84 01 57 C5 C3 9E "Carretilla elevadora (contenedores)" 00
5622 * 33	 04 04 84 01 58 C5 C3 9E "Apilador de contenedores" 00
5623 * 29	 04 04 84 01 59 C5 C3 9E "Alcanza-contenedores" 00
5624 * 29	 04 04 84 01 5A C5 C3 9E "Plataformas de acero" 00
5625 * 14	 04 04 84 01 5B C5 C3 9E "Acero" 00
5626 * 29	 04 04 84 01 5C C5 C3 9E "Plataformas de cobre" 00
5627 * 14	 04 04 84 01 5D C5 C3 9E "Cobre" 00
5628 * 32	 04 04 84 01 5E C5 C3 9E "Plataformas de barriles" 00
5629 * 39	 04 04 84 01 5F C5 C3 9E "Plataformas de barriles (bajo)" 00
5630 * 17	 04 04 84 01 60 C5 C3 9E "Barriles" 00
5631 * 32	 04 04 84 01 61 C5 C3 9E "Plataformas de planchas" 00
5632 * 17	 04 04 84 01 62 C5 C3 9E "Planchas" 00
5633 * 29	 04 04 84 01 63 C5 C3 9E "Plataformas de papel" 00
5634 * 14	 04 04 84 01 64 C5 C3 9E "Papel" 00
5635 * 15	 04 04 84 01 65 C5 C3 9E "Coches" 00

5636 * 27	 04 04 84 01 66 C5 C3 9E "Oficina (clásica)" 00
5637 * 16	 04 04 84 01 67 C5 C3 9E "Oficina" 00
5638 * 26	 04 04 84 01 68 C5 C3 9E "Oficina (moderna)" 00
5639 * 33	 04 04 84 01 69 C5 C3 9E "Oficina (bajo, clásica)" 00
5640 * 23	 04 04 84 01 6A C5 C3 9E "Oficina (bajo)" 00
5641 * 32	 04 04 84 01 6B C5 C3 9E "Oficina (bajo, moderna)" 00
5642 * 26	 04 04 84 01 6C C5 C3 9E "Oficina principal" 00
5643 * 14	 04 04 84 01 6D C5 C3 9E "Naves" 00
5644 * 37	 04 04 84 01 6E C5 C3 9E "Naves de almacenaje abiertas" 00

5645 * 30	 04 04 84 01 6F C5 C3 9E "Oficina de logística" 00
5646 * 24	 04 04 84 01 70 C5 C3 9E "Almacén grande" 00
5647 * 26	 04 04 84 01 71 C5 C3 9E "Almacén pequeño" 00
5648 * 25	 04 04 84 01 72 C5 C3 9E "Almacén moderno" 00
5649 * 30	 04 04 84 01 73 C5 C3 9E "Almacén de ladrillos" 00
5650 * 36	 04 04 84 01 74 C5 C3 9E "Instalaciones de almacenaje" 00

5651 * 30	 04 04 84 01 75 C5 C3 9E "Tanques de almacenaje" 00
5652 * 23	 04 04 84 01 76 C5 C3 9E "Nave de trenes" 00

5653 * 36	 04 04 84 01 77 C5 C3 9E "Edificio de carga (reverso)" 00
5654 * 36	 04 04 84 01 78 C5 C3 9E "Edificio de carga (frontal)" 00
5655 * 27	 04 04 84 01 79 C5 C3 9E "Edificios de carga" 00
5656 * 44	 04 04 84 01 7A C5 C3 9E "Edificios de carga con paso elevado" 00
5657 * 41	 04 04 84 01 7B C5 C3 9E "Paso elevado (plataformas altas)" 00

5658 * 21	 04 04 84 01 82 C5 C3 9E "Vía básica" 00
5659 * 17	 04 04 84 01 83 C5 C3 9E "Pasarela" 00
5660 * 14	 04 04 84 01 84 C5 C3 9E "Cruce" 00
5661 * 14	 04 04 84 01 85 C5 C3 9E "Torre" 00
5662 * 16	 04 04 84 01 86 C5 C3 9E "Refugio" 00
5663 * 31	 04 04 84 01 87 C5 C3 9E "Cambiador de vías (N)" 00
5664 * 31	 04 04 84 01 88 C5 C3 9E "Cambiador de vías (S)" 00
5665 * 27	 04 04 84 01 89 C5 C3 9E "Topes al medio (N)" 00
5666 * 27	 04 04 84 01 8A C5 C3 9E "Topes al medio (S)" 00
5667 * 18	 04 04 84 01 8B C5 C3 9E "Topes (N)" 00
5668 * 18	 04 04 84 01 8C C5 C3 9E "Topes (S)" 00
5669 * 33	 04 04 84 01 8D C5 C3 9E "Vía sin rail intermedio" 00

// Station class names
5670 * 24	 04 04 84 01 00 C4 C3 9E "ISR: Estaciones" 00
5671 * 30	 04 04 84 01 12 C4 C3 9E "ISR: Infraestructuras" 00
5672 * 27	 04 04 84 01 36 C4 C3 9E "ISR: Materia prima" 00
5673 * 34	 04 04 84 01 4D C4 C3 9E "ISR: Productos procesados" 00
5674 * 27	 04 04 84 01 66 C4 C3 9E "ISR: Instalaciones" 00
5675 * 32	 04 04 84 01 82 C4 C3 9E "ISR: Playa de maniobras" 00
// Station names
5676 * 26	 04 04 9F 01 00 C5 C3 9E "Graan laadstation" 00
5677 * 19	 04 04 9F 01 01 C5 C3 9E "Veestation" 00
5678 * 18	 04 04 9F 01 02 C5 C3 9E "Graansilo" 00
5679 * 24	 04 04 9F 01 03 C5 C3 9E "Delfstoffensilo" 00
5680 * 35	 04 04 9F 01 04 C5 C3 9E "Delfstoffen ontlaadstation" 00
5681 * 25	 04 04 9F 01 05 C5 C3 9E "Oliefaciliteiten" 00
5682 * 25	 04 04 9F 01 06 C5 C3 9E "Hout laadstation" 00
5683 * 24	 04 04 9F 01 07 C5 C3 9E "Bewaakt station" 00
5684 * 26	 04 04 9F 01 08 C5 C3 9E "Waterbron station" 00
5685 * 26	 04 04 9F 01 09 C5 C3 9E "Goederenstation A" 00
5686 * 26	 04 04 9F 01 0A C5 C3 9E "Goederenstation B" 00
5687 * 24	 04 04 9F 01 0E C5 C3 9E "Hoogovenstation" 00
5688 * 26	 04 04 9F 01 0C C5 C3 9E "Goederenstation C" 00
5689 * 27	 04 04 9F 01 0F C5 C3 9E "Papier laadstation" 00
5690 * 26	 04 04 9F 01 10 C5 C3 9E "Fruit laadstation" 00
5691 * 27	 04 04 9F 01 11 C5 C3 9E "Rubber laadstation" 00
5692 * 31	 04 04 9F 01 0B C5 C3 9E "Goederenstation (laag)" 00
5693 * 42	 04 04 9F 01 0D C5 C3 9E "Goederenstation voor zware vracht" 00

5694 * 27	 04 04 9F 01 12 C5 C3 9E "Leeg perron (laag)" 00
5695 * 27	 04 04 9F 01 13 C5 C3 9E "Leeg perron (hoog)" 00
5696 * 40	 04 04 9F 01 14 C5 C3 9E "Enkelzijdige platforms (achter)" 00
5697 * 38	 04 04 9F 01 15 C5 C3 9E "Enkelzijdige platforms (voor)" 00
5698 * 20	 04 04 9F 01 16 C5 C3 9E "Helling (N)" 00
5699 * 20	 04 04 9F 01 17 C5 C3 9E "Helling (Z)" 00
5700 * 33	 04 04 9F 01 18 C5 C3 9E "Enkelzijdige helling (N)" 00
5701 * 33	 04 04 9F 01 19 C5 C3 9E "Enkelzijdige helling (Z)" 00
5702 * 25	 04 04 9F 01 1C C5 C3 9E "Stootblok (laag)" 00
5703 * 25	 04 04 9F 01 1D C5 C3 9E "Stootblok (hoog)" 00
5704 * 26	 04 04 9F 01 1E C5 C3 9E "Lege tegel (laag)" 00
5705 * 34	 04 04 9F 01 1F C5 C3 9E "Lege tegel met hek (laag)" 00
5706 * 26	 04 04 9F 01 20 C5 C3 9E "Lege tegel (hoog)" 00
5707 * 32	 04 04 9F 01 1A C5 C3 9E "Helling (N, geen spoor)" 00
5708 * 32	 04 04 9F 01 1B C5 C3 9E "Helling (Z, geen spoor)" 00

5709 * 12	 04 04 9F 01 21 C5 C3 9E "Weg" 00
5710 * 20	 04 04 9F 01 22 C5 C3 9E "Weg met hek" 00
5711 * 25	 04 04 9F 01 23 C5 C3 9E "Spoorwegovergang" 00
5712 * 32	 04 04 9F 01 24 C5 C3 9E "Vrachtautoparkeerplaats" 00
5713 * 24	 04 04 9F 01 25 C5 C3 9E "Toegangsweg (Z)" 00
5714 * 24	 04 04 9F 01 26 C5 C3 9E "Toegangsweg (N)" 00
5715 * 18	 04 04 9F 01 27 C5 C3 9E "Oprit (N)" 00
5716 * 18	 04 04 9F 01 28 C5 C3 9E "Oprit (Z)" 00

5717 * 19	 04 04 9F 01 29 C5 C3 9E "Watertoren" 00
5718 * 19	 04 04 9F 01 2A C5 C3 9E "Torenkraan" 00
5719 * 27	 04 04 9F 01 2B C5 C3 9E "Hijskraan op rails" 00
5720 * 23	 04 04 9F 01 2C C5 C3 9E "Bovenloopkraan" 00

5721 * 25	 04 04 9F 01 2D C5 C3 9E "Portaalkraan (N)" 00
5722 * 37	 04 04 9F 01 2E C5 C3 9E "Portaalkraan (N, geen spoor)" 00
5723 * 25	 04 04 9F 01 2F C5 C3 9E "Portaalkraan (Z)" 00
5724 * 37	 04 04 9F 01 30 C5 C3 9E "Portaalkraan (Z, geen spoor)" 00
5725 * 35	 04 04 9F 01 31 C5 C3 9E "Portaalkraan (N, klassiek)" 00
5726 * 47	 04 04 9F 01 32 C5 C3 9E "Portaalkraan (N, geen spoor, klassiek)" 00
5727 * 35	 04 04 9F 01 33 C5 C3 9E "Portaalkraan (Z, klassiek)" 00
5728 * 47	 04 04 9F 01 34 C5 C3 9E "Portaalkraan (Z, geen spoor, klassiek)" 00
5729 * 32	 04 04 9F 01 35 C5 C3 9E "Hijskraan op rupsbanden" 00

5730 * 24	 04 04 9F 01 36 C5 C3 9E "Boerderijgebouw" 00
5731 * 30	 04 04 9F 01 37 C5 C3 9E "Klein boerderijgebouw" 00
5732 * 30	 04 04 9F 01 38 C5 C3 9E "Boerderijfaciliteiten" 00
5733 * 21	 04 04 9F 01 39 C5 C3 9E "Graan silo's" 00
5734 * 21	 04 04 9F 01 3A C5 C3 9E "Varkensboxen" 00
5735 * 21	 04 04 9F 01 3B C5 C3 9E "Rundveeboxen" 00
5736 * 18	 04 04 9F 01 3C C5 C3 9E "Melktanks" 00
5737 * 23	 04 04 9F 01 3D C5 C3 9E "Rundveestallen" 00
5738 * 23	 04 04 9F 01 3E C5 C3 9E "Fruitplatforms" 00
5739 * 14	 04 04 9F 01 3F C5 C3 9E "Fruit" 00

5740 * 29	 04 04 9F 01 40 C5 C3 9E "Delfstoffenplatforms" 00
5741 * 21	 04 04 9F 01 41 C5 C3 9E "Laadtrechter" 00
5742 * 26	 04 04 9F 01 42 C5 C3 9E "Transportband (N)" 00
5743 * 26	 04 04 9F 01 43 C5 C3 9E "Transportband (Z)" 00
5744 * 25	 04 04 9F 01 44 C5 C3 9E "Berg delfstoffen" 00
5745 * 17	 04 04 9F 01 45 C5 C3 9E "Kipwagen" 00
5746 * 27	 04 04 9F 01 46 C5 C3 9E "Bulldozer (ertsen)" 00
5747 * 24	 04 04 9F 01 47 C5 C3 9E "Shovel (ertsen)" 00

5748 * 25	 04 04 9F 01 48 C5 C3 9E "Olie opslagtanks" 00

5749 * 22	 04 04 9F 01 49 C5 C3 9E "Houtplatforms" 00
5750 * 20	 04 04 9F 01 4A C5 C3 9E "Stapel hout" 00
5751 * 22	 04 04 9F 01 4B C5 C3 9E "Boomstamlader" 00
5752 * 26	 04 04 9F 01 4C C5 C3 9E "Boomstamstapelaar" 00

5753 * 25	 04 04 9F 01 7E C5 C3 9E "Bewaakte loods A" 00
5754 * 25	 04 04 9F 01 7F C5 C3 9E "Bewaakte loods B" 00
5755 * 25	 04 04 9F 01 80 C5 C3 9E "Bewaakte loods C" 00
5756 * 34	 04 04 9F 01 7C C5 C3 9E "Loopbrug (lage platforms)" 00
5757 * 31	 04 04 9F 01 81 C5 C3 9E "Bewaakte parkeerplaats" 00
5758 * 30	 04 04 9F 01 7D C5 C3 9E "Loopbrug (geen spoor)" 00

5759 * 33	 04 04 9F 01 4D C5 C3 9E "Vrachtplatforms algemeen" 00
5760 * 40	 04 04 9F 01 4E C5 C3 9E "Vrachtplatforms algemeen (laag)" 00
5761 * 24	 04 04 9F 01 4F C5 C3 9E "Vracht algemeen" 00
5762 * 30	 04 04 9F 01 50 C5 C3 9E "Vorkheftruck (kisten)" 00
5763 * 29	 04 04 9F 01 51 C5 C3 9E "Vorkheftruckplatform" 00
5764 * 36	 04 04 9F 01 52 C5 C3 9E "Vorkheftruckplatform (laag)" 00
5765 * 32	 04 04 9F 01 53 C5 C3 9E "Container laadplatforms" 00
5766 * 34	 04 04 9F 01 54 C5 C3 9E "Containerplatforms (laag)" 00
5767 * 33	 04 04 9F 01 55 C5 C3 9E "Containers met hijskraan" 00
5768 * 19	 04 04 9F 01 56 C5 C3 9E "Containers" 00
5769 * 34	 04 04 9F 01 57 C5 C3 9E "Vorkheftruck (containers)" 00
5770 * 27	 04 04 9F 01 58 C5 C3 9E "Containerstapelaar" 00
5771 * 23	 04 04 9F 01 59 C5 C3 9E "Reachstapelaar" 00
5772 * 23	 04 04 9F 01 5A C5 C3 9E "Staalplatforms" 00
5773 * 14	 04 04 9F 01 5B C5 C3 9E "Staal" 00
5774 * 23	 04 04 9F 01 5C C5 C3 9E "Koperplatforms" 00
5775 * 14	 04 04 9F 01 5D C5 C3 9E "Koper" 00
5776 * 23	 04 04 9F 01 5E C5 C3 9E "Vatenplatforms" 00
5777 * 30	 04 04 9F 01 5F C5 C3 9E "Vatenplatforms (laag)" 00
5778 * 14	 04 04 9F 01 60 C5 C3 9E "Vaten" 00
5779 * 25	 04 04 9F 01 61 C5 C3 9E "Plankenplatforms" 00
5780 * 16	 04 04 9F 01 62 C5 C3 9E "Planken" 00
5781 * 24	 04 04 9F 01 63 C5 C3 9E "Papierplatforms" 00
5782 * 15	 04 04 9F 01 64 C5 C3 9E "Papier" 00
5783 * 15	 04 04 9F 01 65 C5 C3 9E "Auto's" 00

5784 * 27	 04 04 9F 01 66 C5 C3 9E "Kantoor (klassiek)" 00
5785 * 16	 04 04 9F 01 67 C5 C3 9E "Kantoor" 00
5786 * 25	 04 04 9F 01 68 C5 C3 9E "Kantoor (modern)" 00
5787 * 33	 04 04 9F 01 69 C5 C3 9E "Kantoor (laag, klassiek)" 00
5788 * 23	 04 04 9F 01 6A C5 C3 9E "Kantoor (laag)" 00
5789 * 31	 04 04 9F 01 6B C5 C3 9E "Kantoor (laag, modern)" 00
5790 * 21	 04 04 9F 01 6C C5 C3 9E "Hoofdkantoor" 00
5791 * 16	 04 04 9F 01 6D C5 C3 9E "Schuren" 00
5792 * 26	 04 04 9F 01 6E C5 C3 9E "Open opslagschuur" 00

5793 * 25	 04 04 9F 01 6F C5 C3 9E "Transportkantoor" 00
5794 * 20	 04 04 9F 01 70 C5 C3 9E "Grote loods" 00
5795 * 21	 04 04 9F 01 71 C5 C3 9E "Kleine loods" 00
5796 * 22	 04 04 9F 01 72 C5 C3 9E "Moderne loods" 00
5797 * 25	 04 04 9F 01 73 C5 C3 9E "Loods (baksteen)" 00
5798 * 25	 04 04 9F 01 74 C5 C3 9E "Opslagfaciliteit" 00

5799 * 20	 04 04 9F 01 75 C5 C3 9E "Opslagtanks" 00
5800 * 15	 04 04 9F 01 76 C5 C3 9E "Remise" 00

5801 * 34	 04 04 9F 01 77 C5 C3 9E "Vrachtgebouw (achterkant)" 00
5802 * 32	 04 04 9F 01 78 C5 C3 9E "Vrachtgebouw (voorkant)" 00
5803 * 23	 04 04 9F 01 79 C5 C3 9E "Vrachtgebouwen" 00
5804 * 36	 04 04 9F 01 7A C5 C3 9E "Vrachtgebouwen met loopbrug" 00
5805 * 32	 04 04 9F 01 7B C5 C3 9E "Loopbrug (hoge perrons)" 00

5806 * 14	 04 04 9F 01 82 C5 C3 9E "Spoor" 00
5807 * 15	 04 04 9F 01 83 C5 C3 9E "Opstap" 00
5808 * 16	 04 04 9F 01 84 C5 C3 9E "Overpad" 00
5809 * 14	 04 04 9F 01 85 C5 C3 9E "Toren" 00
5810 * 15	 04 04 9F 01 86 C5 C3 9E "Remise" 00
5811 * 19	 04 04 9F 01 87 C5 C3 9E "Wissel (N)" 00
5812 * 19	 04 04 9F 01 88 C5 C3 9E "Wissel (Z)" 00
5813 * 29	 04 04 9F 01 89 C5 C3 9E "Stootblok midden (N)" 00
5814 * 29	 04 04 9F 01 8A C5 C3 9E "Stootblok midden (Z)" 00
5815 * 22	 04 04 9F 01 8B C5 C3 9E "Stootblok (N)" 00
5816 * 22	 04 04 9F 01 8C C5 C3 9E "Stootblok (Z)" 00
5817 * 32	 04 04 9F 01 8D C5 C3 9E "Spoor zonder middenrail" 00

// Station class names
5818 * 22	 04 04 9F 01 00 C4 C3 9E "ISR: Stations" 00
5819 * 23	 04 04 9F 01 12 C4 C3 9E "ISR: Elementen" 00
5820 * 26	 04 04 9F 01 36 C4 C3 9E "ISR: Grondstoffen" 00
5821 * 33	 04 04 9F 01 4D C4 C3 9E "ISR: Verwerkte producten" 00
5822 * 26	 04 04 9F 01 66 C4 C3 9E "ISR: Faciliteiten" 00
5823 * 28	 04 04 9F 01 82 C4 C3 9E "ISR: Rangeerterrein" 00
// Station names
5824 * 33	 04 04 B4 01 00 C5 C3 9E "Teravilja laadimise jaam" 00
5825 * 22	 04 04 B4 01 01 C5 C3 9E "Kariloomajaam" 00
5826 * 25	 04 04 B4 01 02 C5 C3 9E "Teravilja hoidla" 00
5827 * 27	 04 04 B4 01 03 C5 C3 9E "Mineraalide hoidla" 00
5828 * 32	 04 04 B4 01 04 C5 C3 9E "Mineraalide mahalaadija" 00
5829 * 22	 04 04 B4 01 05 C5 C3 9E "Õli tarvikud" 00
5830 * 29	 04 04 B4 01 06 C5 C3 9E "Puidu laadimise jaam" 00
5831 * 28	 04 04 B4 01 07 C5 C3 9E "Väärisasjade jaam" 00
5832 * 23	 04 04 B4 01 08 C5 C3 9E "Puurkaevu jaam" 00
5833 * 28	 04 04 B4 01 09 C5 C3 9E "Tarbeesemete jaam A" 00
5834 * 28	 04 04 B4 01 0A C5 C3 9E "Tarbeesemete jaam B" 00
5835 * 30	 04 04 B4 01 0E C5 C3 9E "Terasetööstuse jaam" 00
5836 * 20	 04 04 B4 01 0C C5 C3 9E "Kaubajaam C" 00
5837 * 30	 04 04 B4 01 0F C5 C3 9E "Paberi laadimise jaam" 00
5838 * 32	 04 04 B4 01 10 C5 C3 9E "Puuvilja laadimise jaam" 00
5839 * 29	 04 04 B4 01 11 C5 C3 9E "Kummi laadimise jaam" 00
5840 * 34	 04 04 B4 01 0B C5 C3 9E "Tarbeesemete jaam (madal)" 00
5841 * 33	 04 04 B4 01 0D C5 C3 9E "Rasketööstuskauba jaam" 00

5842 * 31	 04 04 B4 01 12 C5 C3 9E "Tühi platvorm (madal)" 00
5843 * 32	 04 04 B4 01 13 C5 C3 9E "Tühi platvorm (kõrge)" 00
5844 * 42	 04 04 B4 01 14 C5 C3 9E "Ühepoolne platvormide (tagumine)" 00
5845 * 40	 04 04 B4 01 15 C5 C3 9E "Ühepoolne platvormid (eesmine)" 00
5846 * 20	 04 04 B4 01 16 C5 C3 9E "Kaldtee (P)" 00
5847 * 20	 04 04 B4 01 17 C5 C3 9E "Kaldtee (L)" 00
5848 * 28	 04 04 B4 01 18 C5 C3 9E "Ühepoolne ramp (P)" 00
5849 * 28	 04 04 B4 01 19 C5 C3 9E "Ühepoolne ramp (L)" 00
5850 * 23	 04 04 B4 01 1C C5 C3 9E "Puhver (madal)" 00
5851 * 24	 04 04 B4 01 1D C5 C3 9E "Puhver (kõrge)" 00
5852 * 28	 04 04 B4 01 1E C5 C3 9E "Tühi plats (madal)" 00
5853 * 34	 04 04 B4 01 1F C5 C3 9E "Tühi plats aiaga (madal)" 00
5854 * 29	 04 04 B4 01 20 C5 C3 9E "Tühi plats (kõrge)" 00
5855 * 30	 04 04 B4 01 1A C5 C3 9E "Ramp (P, ilma rajata)" 00
5856 * 30	 04 04 B4 01 1B C5 C3 9E "Ramp (L, ilma rajata)" 00

5857 * 18	 04 04 B4 01 21 C5 C3 9E "Sõidutee" 00
5858 * 23	 04 04 B4 01 22 C5 C3 9E "Tee koos aiaga" 00
5859 * 30	 04 04 B4 01 23 C5 C3 9E "Sõiduteega ristumine" 00
5860 * 23	 04 04 B4 01 24 C5 C3 9E "Veokite parkla" 00
5861 * 34	 04 04 B4 01 25 C5 C3 9E "Sõidutee sissepääs (L)" 00
5862 * 34	 04 04 B4 01 26 C5 C3 9E "Sõidutee sissepääs (P)" 00
5863 * 41	 04 04 B4 01 27 C5 C3 9E "Mootorsõidukite sissepääs (P)" 00
5864 * 41	 04 04 B4 01 28 C5 C3 9E "Mootorsõidukite sissepääs (L)" 00

5865 * 16	 04 04 B4 01 29 C5 C3 9E "Veetorn" 00
5866 * 19	 04 04 B4 01 2A C5 C3 9E "Tornkraana" 00
5867 * 27	 04 04 B4 01 2B C5 C3 9E "Rööbastel kraana" 00
5868 * 23	 04 04 B4 01 2C C5 C3 9E "Ülepea kraana" 00

5869 * 26	 04 04 B4 01 2D C5 C3 9E "Portaalkraana (P)" 00
5870 * 37	 04 04 B4 01 2E C5 C3 9E "Portaalkraana (P, raudteeta)" 00
5871 * 26	 04 04 B4 01 2F C5 C3 9E "Portaalkraana (L)" 00
5872 * 37	 04 04 B4 01 30 C5 C3 9E "Portaalkraana (L, raudteeta)" 00
5873 * 40	 04 04 B4 01 31 C5 C3 9E "Portaalkraana (P, klassikaline)" 00
5874 * 51	 04 04 B4 01 32 C5 C3 9E "Portaalkraana (P, raudteeta, klassikaline)" 00
5875 * 40	 04 04 B4 01 33 C5 C3 9E "Portaalkraana (L, klassikaline)" 00
5876 * 47	 04 04 B4 01 34 C5 C3 9E "Portaalkraana (L, raudteeta, klassik.)" 00
5877 * 26	 04 04 B4 01 35 C5 C3 9E "Roomikutel kraana" 00

5878 * 18	 04 04 B4 01 36 C5 C3 9E "Taluhoone" 00
5879 * 25	 04 04 B4 01 37 C5 C3 9E "Väike taluhoone" 00
5880 * 27	 04 04 B4 01 38 C5 C3 9E "Talu kõrvalhooned" 00
5881 * 25	 04 04 B4 01 39 C5 C3 9E "Teravilja mahuti" 00
5882 * 19	 04 04 B4 01 3A C5 C3 9E "Põrssaaed" 00
5883 * 37	 04 04 B4 01 3B C5 C3 9E "Kariloomade laadimisplatvorm" 00
5884 * 22	 04 04 B4 01 3C C5 C3 9E "Piimatsistern" 00
5885 * 25	 04 04 B4 01 3D C5 C3 9E "Kariloomade laut" 00
5886 * 28	 04 04 B4 01 3E C5 C3 9E "Puuviljade platvorm" 00
5887 * 16	 04 04 B4 01 3F C5 C3 9E "Puuvili" 00

5888 * 29	 04 04 B4 01 40 C5 C3 9E "Mineraalide platvorm" 00
5889 * 26	 04 04 B4 01 41 C5 C3 9E "Rongi laadimisaht" 00
5890 * 25	 04 04 B4 01 42 C5 C3 9E "Lintkonveier (P)" 00
5891 * 25	 04 04 B4 01 43 C5 C3 9E "Lintkonveier (L)" 00
5892 * 27	 04 04 B4 01 44 C5 C3 9E "Mineraalide hunnik" 00
5893 * 22	 04 04 B4 01 45 C5 C3 9E "Kaevandusveok" 00
5894 * 32	 04 04 B4 01 46 C5 C3 9E "Bulldooser (mineraalid)" 00
5895 * 28	 04 04 B4 01 47 C5 C3 9E "Laadur (mineraalid)" 00

5896 * 21	 04 04 B4 01 48 C5 C3 9E "Õlitsistern" 00

5897 * 23	 04 04 B4 01 49 C5 C3 9E "Puidu platvorm" 00
5898 * 20	 04 04 B4 01 4A C5 C3 9E "Puiduhunnik" 00
5899 * 20	 04 04 B4 01 4B C5 C3 9E "Puidulaadur" 00
5900 * 21	 04 04 B4 01 4C C5 C3 9E "Puidukuhjaja" 00

5901 * 30	 04 04 B4 01 7E C5 C3 9E "Väärtesemete ladu A" 00
5902 * 30	 04 04 B4 01 7F C5 C3 9E "Väärtesemete ladu B" 00
5903 * 30	 04 04 B4 01 80 C5 C3 9E "Väärtesemete ladu C" 00
5904 * 40	 04 04 B4 01 7C C5 C3 9E "Ülekäigusild (madal platvorm)" 00
5905 * 30	 04 04 B4 01 81 C5 C3 9E "Väärtesemete parkla" 00
5906 * 35	 04 04 B4 01 7D C5 C3 9E "Ülekäigusild (raudteeta)" 00

5907 * 29	 04 04 B4 01 4D C5 C3 9E "Tavakauba platvormid" 00
5908 * 37	 04 04 B4 01 4E C5 C3 9E "Tavakauba platvormid (madal)" 00
5909 * 17	 04 04 B4 01 4F C5 C3 9E "Tavakaup" 00
5910 * 31	 04 04 B4 01 50 C5 C3 9E "Kahveltõstuk (kastid)" 00
5911 * 32	 04 04 B4 01 51 C5 C3 9E "Kahveltõstuki platvorm" 00
5912 * 40	 04 04 B4 01 52 C5 C3 9E "Kahveltõstuki platvorm (madal)" 00
5913 * 30	 04 04 B4 01 53 C5 C3 9E "Konteinerite platvorm" 00
5914 * 37	 04 04 B4 01 54 C5 C3 9E "Kontainer platvormid (madal)" 00
5915 * 29	 04 04 B4 01 55 C5 C3 9E "Konteinerid kraanaga" 00
5916 * 20	 04 04 B4 01 56 C5 C3 9E "Konteinerid" 00
5917 * 36	 04 04 B4 01 57 C5 C3 9E "Kahveltõstuk (konteinerid)" 00
5918 * 24	 04 04 B4 01 58 C5 C3 9E "Konteinrikraana" 00
5919 * 20	 04 04 B4 01 59 C5 C3 9E "Kaugkuhjaja" 00
5920 * 24	 04 04 B4 01 5A C5 C3 9E "Terase platvorm" 00
5921 * 14	 04 04 B4 01 5B C5 C3 9E "Teras" 00
5922 * 22	 04 04 B4 01 5C C5 C3 9E "Vase platvorm" 00
5923 * 13	 04 04 B4 01 5D C5 C3 9E "Vask" 00
5924 * 26	 04 04 B4 01 5E C5 C3 9E "Tünnide platvorm" 00
5925 * 36	 04 04 B4 01 5F C5 C3 9E "Tünnide platvormid (madal)" 00
5926 * 16	 04 04 B4 01 60 C5 C3 9E "Tünnid" 00
5927 * 25	 04 04 B4 01 61 C5 C3 9E "Palkide platvorm" 00
5928 * 15	 04 04 B4 01 62 C5 C3 9E "Palgid" 00
5929 * 24	 04 04 B4 01 63 C5 C3 9E "Paberi platvorm" 00
5930 * 14	 04 04 B4 01 64 C5 C3 9E "Paber" 00
5931 * 14	 04 04 B4 01 65 C5 C3 9E "Autod" 00

5932 * 27	 04 04 B4 01 66 C5 C3 9E "Kontor (vanaaegne)" 00
5933 * 15	 04 04 B4 01 67 C5 C3 9E "Kontor" 00
5934 * 24	 04 04 B4 01 68 C5 C3 9E "Kontor (moodne)" 00
5935 * 34	 04 04 B4 01 69 C5 C3 9E "Kontor (madal, vanaaegne)" 00
5936 * 23	 04 04 B4 01 6A C5 C3 9E "Kontor (madal)" 00
5937 * 31	 04 04 B4 01 6B C5 C3 9E "Kontor (madal, moodne)" 00
5938 * 17	 04 04 B4 01 6C C5 C3 9E "Peahoone" 00
5939 * 13	 04 04 B4 01 6D C5 C3 9E "Laod" 00
5940 * 21	 04 04 B4 01 6E C5 C3 9E "Lahtine ladu" 00

5941 * 26	 04 04 B4 01 6F C5 C3 9E "Saadetiste kontor" 00
5942 * 22	 04 04 B4 01 70 C5 C3 9E "Suur laohoone" 00
5943 * 24	 04 04 B4 01 71 C5 C3 9E "Väike laohoone" 00
5944 * 27	 04 04 B4 01 72 C5 C3 9E "Kaasaegne laohoone" 00
5945 * 28	 04 04 B4 01 73 C5 C3 9E "Tellistest laohoone" 00
5946 * 18	 04 04 B4 01 74 C5 C3 9E "Laoseaded" 00

5947 * 23	 04 04 B4 01 75 C5 C3 9E "Hoiutsisternid" 00
5948 * 19	 04 04 B4 01 76 C5 C3 9E "Rongi kuur" 00

5949 * 33	 04 04 B4 01 77 C5 C3 9E "Kaubajaama ehitis (taga)" 00
5950 * 32	 04 04 B4 01 78 C5 C3 9E "Kaubajaama ehitis (ees)" 00
5951 * 23	 04 04 B4 01 79 C5 C3 9E "Kauba ehitised" 00
5952 * 49	 04 04 B4 01 7A C5 C3 9E "Kaubajaama ehitis koos ülekäigusillaga" 00
5953 * 41	 04 04 B4 01 7B C5 C3 9E "Ülekäigusild (kõrge platvorm)" 00

5954 * 22	 04 04 B4 01 82 C5 C3 9E "Tavaline rada" 00
5955 * 16	 04 04 B4 01 83 C5 C3 9E "Jalgtee" 00
5956 * 18	 04 04 B4 01 84 C5 C3 9E "Ristumine" 00
5957 * 13	 04 04 B4 01 85 C5 C3 9E "Torn" 00
5958 * 16	 04 04 B4 01 86 C5 C3 9E "Varjend" 00
5959 * 25	 04 04 B4 01 87 C5 C3 9E "Rajavahetaja (P)" 00
5960 * 25	 04 04 B4 01 88 C5 C3 9E "Rajavahetaja (L)" 00
5961 * 31	 04 04 B4 01 89 C5 C3 9E "Keskmised puhverid (P)" 00
5962 * 31	 04 04 B4 01 8A C5 C3 9E "Keskmised puhverid (L)" 00
5963 * 19	 04 04 B4 01 8B C5 C3 9E "Puhver (P)" 00
5964 * 19	 04 04 B4 01 8C C5 C3 9E "Puhver (L)" 00
5965 * 36	 04 04 B4 01 8D C5 C3 9E "Rada keskmiste rööbasteta" 00

// Station class names
5966 * 32	 04 04 B4 01 00 C4 C3 9E "ISR: Tööstuste jaamad" 00
5967 * 26	 04 04 B4 01 12 C4 C3 9E "ISR: Püsiseadmed" 00
5968 * 23	 04 04 B4 01 36 C4 C3 9E "ISR: Toorained" 00
5969 * 31	 04 04 B4 01 4D C4 C3 9E "ISR: Käideldud tooted" 00
5970 * 35	 04 04 B4 01 66 C4 C3 9E "ISR: Kontorid ja abihooned" 00
5971 * 38	 04 04 B4 01 82 C4 C3 9E "ISR: Vagunite sorteerimisjaam" 00
// Station names
5972 * 28	 04 04 B5 01 00 C5 C3 9E "Viljan lastausasema" 00
5973 * 28	 04 04 B5 01 01 C5 C3 9E "Karjan lastausasema" 00
5974 * 20	 04 04 B5 01 02 C5 C3 9E "Viljasiilot" 00
5975 * 23	 04 04 B5 01 03 C5 C3 9E "Mineraalisiilo" 00
5976 * 26	 04 04 B5 01 04 C5 C3 9E "Mineraalien purku" 00
5977 * 23	 04 04 B5 01 05 C5 C3 9E "Öljylaitokset" 00
5978 * 26	 04 04 B5 01 06 C5 C3 9E "Puun lastausasema" 00
5979 * 25	 04 04 B5 01 07 C5 C3 9E "Arvotavara-asema" 00
5980 * 25	 04 04 B5 01 08 C5 C3 9E "Vesipumppu asema" 00
5981 * 23	 04 04 B5 01 09 C5 C3 9E "Tavara-asema A" 00
5982 * 23	 04 04 B5 01 0A C5 C3 9E "Tavara-asema B" 00
5983 * 26	 04 04 B5 01 0E C5 C3 9E "Teräsmylly asema" 00
5984 * 23	 04 04 B5 01 0C C5 C3 9E "Tavara-asema C" 00
5985 * 29	 04 04 B5 01 0F C5 C3 9E "Paperin lastausasema" 00
5986 * 31	 04 04 B5 01 10 C5 C3 9E "Hedelmien lastausasema" 00
5987 * 27	 04 04 B5 01 11 C5 C3 9E "Kumin lastausasema" 00
5988 * 28	 04 04 B5 01 0B C5 C3 9E "Matala tavara-asema" 00
5989 * 30	 04 04 B5 01 0D C5 C3 9E "Raskaan tavaran asema" 00

5990 * 34	 04 04 B5 01 12 C5 C3 9E "Tyhjät laiturit (matala)" 00
5991 * 34	 04 04 B5 01 13 C5 C3 9E "Tyhjät laiturit (korkea)" 00
5992 * 36	 04 04 B5 01 14 C5 C3 9E "Yksipuolinen laituri (taka)" 00
5993 * 35	 04 04 B5 01 15 C5 C3 9E "Yksipuolinen laituri (etu)" 00
5994 * 19	 04 04 B5 01 16 C5 C3 9E "Ramppi (P)" 00
5995 * 19	 04 04 B5 01 17 C5 C3 9E "Ramppi (E)" 00
5996 * 39	 04 04 B5 01 18 C5 C3 9E "Yksipuolinen ramppi, pohjoinen" 00
5997 * 36	 04 04 B5 01 19 C5 C3 9E "Yksipuolinen ramppi, etelä" 00
5998 * 33	 04 04 B5 01 1C C5 C3 9E "Päätepuskimet (matala)" 00
5999 * 33	 04 04 B5 01 1D C5 C3 9E "Päätepuskimet (korkea)" 00
6000 * 30	 04 04 B5 01 1E C5 C3 9E "Tyhjä ruutu (matala)" 00
6001 * 29	 04 04 B5 01 1F C5 C3 9E "Aidattu tyhjä ruutu" 00
6002 * 30	 04 04 B5 01 20 C5 C3 9E "Tyhjä ruutu (korkea)" 00
6003 * 26	 04 04 B5 01 1A C5 C3 9E "Ramppi, pohjoinen" 00
6004 * 23	 04 04 B5 01 1B C5 C3 9E "Ramppi, etelä" 00

6005 * 12	 04 04 B5 01 21 C5 C3 9E "Tie" 00
6006 * 20	 04 04 B5 01 22 C5 C3 9E "Aidattu tie" 00
6007 * 20	 04 04 B5 01 23 C5 C3 9E "Tienristeys" 00
6008 * 27	 04 04 B5 01 24 C5 C3 9E "Kuorma-auto parkki" 00
6009 * 24	 04 04 B5 01 25 C5 C3 9E "Tie pääsy (E)" 00
6010 * 24	 04 04 B5 01 26 C5 C3 9E "Tie pääsy (P)" 00
6011 * 33	 04 04 B5 01 27 C5 C3 9E "Tie ajoneuvo pääsy (P)" 00
6012 * 33	 04 04 B5 01 28 C5 C3 9E "Tie ajoneuvo pääsy (E)" 00

6013 * 18	 04 04 B5 01 29 C5 C3 9E "Vesitorni" 00
6014 * 21	 04 04 B5 01 2A C5 C3 9E "Torninosturi" 00
6015 * 26	 04 04 B5 01 2B C5 C3 9E "Nosturi raiteilla" 00
6016 * 29	 04 04 B5 01 2C C5 C3 9E "Yläpuolinen nosturi" 00

6017 * 28	 04 04 B5 01 2D C5 C3 9E "Portaalinosturi (P)" 00
6018 * 44	 04 04 B5 01 2E C5 C3 9E "Portaalinosturi (P, ilman raidetta)" 00
6019 * 28	 04 04 B5 01 2F C5 C3 9E "Portaalinosturi (E)" 00
6020 * 44	 04 04 B5 01 30 C5 C3 9E "Portaalinosturi (E, ilman raidetta)" 00
6021 * 39	 04 04 B5 01 31 C5 C3 9E "Portaalinosturi (P, klassinen)" 00
6022 * 55	 04 04 B5 01 32 C5 C3 9E "Portaalinosturi (P, ilman raidetta, klassinen)" 00
6023 * 39	 04 04 B5 01 33 C5 C3 9E "Portaalinosturi (E, klassinen)" 00
6024 * 55	 04 04 B5 01 34 C5 C3 9E "Portaalinosturi (E, ilman raidetta, klassinen)" 00
6025 * 32	 04 04 B5 01 35 C5 C3 9E "Tela-alustainen nosturi" 00

6026 * 24	 04 04 B5 01 36 C5 C3 9E "Maatilarakennus" 00
6027 * 30	 04 04 B5 01 37 C5 C3 9E "Pieni maatilarakennus" 00
6028 * 25	 04 04 B5 01 38 C5 C3 9E "Maatilalaitokset" 00
6029 * 23	 04 04 B5 01 39 C5 C3 9E "Viljasäiliöt" 00
6030 * 20	 04 04 B5 01 3A C5 C3 9E "Sika-aitaus" 00
6031 * 21	 04 04 B5 01 3B C5 C3 9E "Karja-aitaus" 00
6032 * 23	 04 04 B5 01 3C C5 C3 9E "Maitosäiliöt" 00
6033 * 20	 04 04 B5 01 3D C5 C3 9E "Karja-aitat" 00
6034 * 25	 04 04 B5 01 3E C5 C3 9E "Hedelmälaiturit" 00
6035 * 18	 04 04 B5 01 3F C5 C3 9E "Hedelmiä" 00

6036 * 25	 04 04 B5 01 40 C5 C3 9E "Mineraalilaituri" 00
6037 * 21	 04 04 B5 01 41 C5 C3 9E "Lastauskouru" 00
6038 * 26	 04 04 B5 01 42 C5 C3 9E "Hihnakuljetin (P)" 00
6039 * 26	 04 04 B5 01 43 C5 C3 9E "Hihnakuljetin (E)" 00
6040 * 22	 04 04 B5 01 44 C5 C3 9E "Mineraalikasa" 00
6041 * 17	 04 04 B5 01 45 C5 C3 9E "Dumpperi" 00
6042 * 22	 04 04 B5 01 46 C5 C3 9E "Puskutraktori" 00
6043 * 23	 04 04 B5 01 47 C5 C3 9E "Kauhakuormaaja" 00

6044 * 23	 04 04 B5 01 48 C5 C3 9E "Öljysäiliöt" 00

6045 * 27	 04 04 B5 01 49 C5 C3 9E "Puutavara laiturit" 00
6046 * 23	 04 04 B5 01 4A C5 C3 9E "Puutavara kasa" 00
6047 * 21	 04 04 B5 01 4B C5 C3 9E "Tukkinosturi" 00
6048 * 22	 04 04 B5 01 4C C5 C3 9E "Tukkikuormain" 00

6049 * 27	 04 04 B5 01 7E C5 C3 9E "Arvotavara katos A" 00
6050 * 27	 04 04 B5 01 7F C5 C3 9E "Arvotavara katos B" 00
6051 * 27	 04 04 B5 01 80 C5 C3 9E "Arvotavara katos C" 00
6052 * 39	 04 04 B5 01 7C C5 C3 9E "Ylikulku (matala asemalaituri)" 00
6053 * 29	 04 04 B5 01 81 C5 C3 9E "Arvotavaraparkkialue" 00
6054 * 34	 04 04 B5 01 7D C5 C3 9E "ylikulku (ilman raidetta)" 00

6055 * 28	 04 04 B5 01 4D C5 C3 9E "Yleistavaralaiturit" 00
6056 * 36	 04 04 B5 01 4E C5 C3 9E "Matalat yleistavaralaiturit" 00
6057 * 20	 04 04 B5 01 4F C5 C3 9E "Yleistavara" 00
6058 * 21	 04 04 B5 01 50 C5 C3 9E "Pieni trukki" 00
6059 * 22	 04 04 B5 01 51 C5 C3 9E "Trukkilaituri" 00
6060 * 29	 04 04 B5 01 52 C5 C3 9E "Matala trukkilaituri" 00
6061 * 32	 04 04 B5 01 53 C5 C3 9E "Konttien lastauslaituri" 00
6062 * 31	 04 04 B5 01 54 C5 C3 9E "Matalat konttilaiturit" 00
6063 * 33	 04 04 B5 01 55 C5 C3 9E "Kontteja nosturin kanssa" 00
6064 * 17	 04 04 B5 01 56 C5 C3 9E "Kontteja" 00
6065 * 21	 04 04 B5 01 57 C5 C3 9E "Konttitrukki" 00
6066 * 23	 04 04 B5 01 58 C5 C3 9E "Konttikuormain" 00
6067 * 24	 04 04 B5 01 59 C5 C3 9E "Konttikurottaja" 00
6068 * 25	 04 04 B5 01 5A C5 C3 9E "Teräslaitureita" 00
6069 * 18	 04 04 B5 01 5B C5 C3 9E "Terästä" 00
6070 * 23	 04 04 B5 01 5C C5 C3 9E "Kuparilaiturit" 00
6071 * 16	 04 04 B5 01 5D C5 C3 9E "Kuparia" 00
6072 * 24	 04 04 B5 01 5E C5 C3 9E "Tynnyrilaiturit" 00
6073 * 32	 04 04 B5 01 5F C5 C3 9E "Matalat tynnyrilaiturit" 00
6074 * 20	 04 04 B5 01 60 C5 C3 9E "Tynnyreitä" 00
6075 * 25	 04 04 B5 01 61 C5 C3 9E "Lankkulaitureita" 00
6076 * 17	 04 04 B5 01 62 C5 C3 9E "Lankkuja" 00
6077 * 23	 04 04 B5 01 63 C5 C3 9E "Paperilaiturit" 00
6078 * 16	 04 04 B5 01 64 C5 C3 9E "Paperia" 00
6079 * 15	 04 04 B5 01 65 C5 C3 9E "Autoja" 00

6080 * 29	 04 04 B5 01 66 C5 C3 9E "Toimisto (klassinen)" 00
6081 * 17	 04 04 B5 01 67 C5 C3 9E "Toimisto" 00
6082 * 27	 04 04 B5 01 68 C5 C3 9E "Toimisto (moderni)" 00
6083 * 37	 04 04 B5 01 69 C5 C3 9E "Toimisto (matala, klassinen)" 00
6084 * 26	 04 04 B5 01 6A C5 C3 9E "Toimisto (matala)" 00
6085 * 35	 04 04 B5 01 6B C5 C3 9E "Toimisto (matala, moderni)" 00
6086 * 22	 04 04 B5 01 6C C5 C3 9E "Päätoimisto" 00
6087 * 14	 04 04 B5 01 6D C5 C3 9E "Vajat" 00
6088 * 26	 04 04 B5 01 6E C5 C3 9E "Avoin varastovaja" 00

6089 * 21	 04 04 B5 01 6F C5 C3 9E "Lähettämö" 00
6090 * 30	 04 04 B5 01 70 C5 C3 9E "Suuri varastorakennus" 00
6091 * 30	 04 04 B5 01 71 C5 C3 9E "Pieni varastorakennus" 00
6092 * 32	 04 04 B5 01 72 C5 C3 9E "Moderni varastorakennus" 00
6093 * 33	 04 04 B5 01 73 C5 C3 9E "Tiilinen varastorakennus" 00
6094 * 24	 04 04 B5 01 74 C5 C3 9E "Varastointitila" 00

6095 * 18	 04 04 B5 01 75 C5 C3 9E "Säiliöt" 00
6096 * 26	 04 04 B5 01 76 C5 C3 9E "Juna vajarakennus" 00

6097 * 23	 04 04 B5 01 77 C5 C3 9E "Varasto (taka)" 00
6098 * 22	 04 04 B5 01 78 C5 C3 9E "Varasto (etu)" 00
6099 * 18	 04 04 B5 01 79 C5 C3 9E "Varastoja" 00
6100 * 28	 04 04 B5 01 7A C5 C3 9E "Varastot ylikululla" 00
6101 * 17	 04 04 B5 01 7B C5 C3 9E "ylikulku" 00

6102 * 20	 04 04 B5 01 82 C5 C3 9E "Perus-raide" 00
6103 * 19	 04 04 B5 01 83 C5 C3 9E "Hoitosilta" 00
6104 * 16	 04 04 B5 01 84 C5 C3 9E "Risteys" 00
6105 * 14	 04 04 B5 01 85 C5 C3 9E "Torni" 00
6106 * 14	 04 04 B5 01 86 C5 C3 9E "Suoja" 00
6107 * 19	 04 04 B5 01 87 C5 C3 9E "Vaihde (P)" 00
6108 * 19	 04 04 B5 01 88 C5 C3 9E "Vaihde (E)" 00
6109 * 32	 04 04 B5 01 89 C5 C3 9E "Keski päätepuskin (P)" 00
6110 * 32	 04 04 B5 01 8A C5 C3 9E "Keski päätepuskin (E)" 00
6111 * 26	 04 04 B5 01 8B C5 C3 9E "Päätepuskin (P)" 00
6112 * 26	 04 04 B5 01 8C C5 C3 9E "Päätepuskin (E)" 00
6113 * 30	 04 04 B5 01 8D C5 C3 9E "Rata ei keskiraidetta" 00

// Station class names
6114 * 20	 04 04 B5 01 00 C4 C3 9E "ISR: Asemat" 00
6115 * 21	 04 04 B5 01 12 C4 C3 9E "ISR: Kalusto" 00
6116 * 26	 04 04 B5 01 36 C4 C3 9E "ISR: Raaka-aineet" 00
6117 * 33	 04 04 B5 01 4D C4 C3 9E "ISR: Käsitellyt tavarat" 00
6118 * 23	 04 04 B5 01 66 C4 C3 9E "ISR: Laitokset" 00
6119 * 24	 04 04 B5 01 82 C4 C3 9E "ISR: Vaihtotyö" 00
// Station names
6120 * 36	 04 04 87 01 00 C5 C3 9E "Погрузка зерна" 00
6121 * 55	 04 04 87 01 01 C5 C3 9E "Погрузка домашнего скота" 00
6122 * 43	 04 04 87 01 02 C5 C3 9E "Элеватор для зерна" 00
6123 * 65	 04 04 87 01 03 C5 C3 9E "Погрузка минеральных ресурсов" 00
6124 * 67	 04 04 87 01 04 C5 C3 9E "Разгрузка минеральных ресурсов" 00
6125 * 36	 04 04 87 01 05 C5 C3 9E "Погрузка нефти" 00
6126 * 34	 04 04 87 01 06 C5 C3 9E "Погрузка леса" 00
6127 * 44	 04 04 87 01 07 C5 C3 9E "Охраняемая станция" 00
6128 * 40	 04 04 87 01 08 C5 C3 9E "Насосная станция" 00
6129 * 50	 04 04 87 01 09 C5 C3 9E "Погрузка товаров. Тип 1" 00
6130 * 50	 04 04 87 01 0A C5 C3 9E "Погрузка товаров. Тип 2" 00
6131 * 36	 04 04 87 01 0E C5 C3 9E "Погрузка стали" 00
6132 * 50	 04 04 87 01 0C C5 C3 9E "Погрузка товаров. Тип 4" 00
6133 * 38	 04 04 87 01 0F C5 C3 9E "Погрузка бумаги" 00
6134 * 40	 04 04 87 01 10 C5 C3 9E "Погрузка фруктов" 00
6135 * 40	 04 04 87 01 11 C5 C3 9E "Погрузка каучука" 00
6136 * 50	 04 04 87 01 0B C5 C3 9E "Погрузка товаров. Тип 3" 00
6137 * 69	 04 04 87 01 0D C5 C3 9E "Станция крупногабаритных грузов" 00

6138 * 38	 04 04 87 01 12 C5 C3 9E "Пустая площадка" 00
6139 * 40	 04 04 87 01 13 C5 C3 9E "Пустая платформа" 00
6140 * 80	 04 04 87 01 14 C5 C3 9E "Односторонняя платформа (дальний край)" 00
6141 * 80	 04 04 87 01 15 C5 C3 9E "Односторонняя платформа (ближний край)" 00
6142 * 32	 04 04 87 01 16 C5 C3 9E "Откос (Север)" 00
6143 * 26	 04 04 87 01 17 C5 C3 9E "Откос (Юг)" 00
6144 * 59	 04 04 87 01 18 C5 C3 9E "Односторонняя рампа (Север)" 00
6145 * 53	 04 04 87 01 19 C5 C3 9E "Односторонняя рампа (Юг)" 00
6146 * 31	 04 04 87 01 1C C5 C3 9E "Буфер (низк.)" 00
6147 * 29	 04 04 87 01 1D C5 C3 9E "Буфер (выс.)" 00
6148 * 38	 04 04 87 01 1E C5 C3 9E "Пустая площадка" 00
6149 * 51	 04 04 87 01 1F C5 C3 9E "Площадка с ограждением" 00
6150 * 40	 04 04 87 01 20 C5 C3 9E "Пустая платформа" 00
6151 * 32	 04 04 87 01 1A C5 C3 9E "Рампа (Север)" 00
6152 * 26	 04 04 87 01 1B C5 C3 9E "Рампа (Юг)" 00

6153 * 21	 04 04 87 01 21 C5 C3 9E "Дорога" 00
6154 * 47	 04 04 87 01 22 C5 C3 9E "Дорога с ограждением" 00
6155 * 31	 04 04 87 01 23 C5 C3 9E "Перекресток" 00
6156 * 44	 04 04 87 01 24 C5 C3 9E "Стоянка грузовиков" 00
6157 * 46	 04 04 87 01 25 C5 C3 9E "Заезд на станцию (Юг)" 00
6158 * 52	 04 04 87 01 26 C5 C3 9E "Заезд на станцию (Север)" 00
6159 * 60	 04 04 87 01 27 C5 C3 9E "Заезд для грузовиков (Север)" 00
6160 * 54	 04 04 87 01 28 C5 C3 9E "Заезд для грузовиков (Юг)" 00

6161 * 44	 04 04 87 01 29 C5 C3 9E "Водонапорная башня" 00
6162 * 34	 04 04 87 01 2A C5 C3 9E "Башенный кран" 00
6163 * 36	 04 04 87 01 2B C5 C3 9E "Рельсовый кран" 00
6164 * 34	 04 04 87 01 2C C5 C3 9E "Мостовой кран" 00

6165 * 47	 04 04 87 01 2D C5 C3 9E "Козловой кран (Север)" 00
6166 * 66	 04 04 87 01 2E C5 C3 9E "Козловой кран (Север, без рельс)" 00
6167 * 41	 04 04 87 01 2F C5 C3 9E "Козловой кран (Юг)" 00
6168 * 60	 04 04 87 01 30 C5 C3 9E "Козловой кран (Юг, без рельс)" 00
6169 * 60	 04 04 87 01 31 C5 C3 9E "Старый козловой кран (Север)" 00
6170 * 79	 04 04 87 01 32 C5 C3 9E "Старый козловой кран (Север, без рельс)" 00
6171 * 54	 04 04 87 01 33 C5 C3 9E "Старый козловой кран (Юг)" 00
6172 * 74	 04 04 87 01 34 C5 C3 9E "Старый козловой кран (Юг, без. рельс)" 00
6173 * 38	 04 04 87 01 35 C5 C3 9E "Гусеничный кран" 00

6174 * 32	 04 04 87 01 36 C5 C3 9E "Здание фермы" 00
6175 * 51	 04 04 87 01 37 C5 C3 9E "Небольшое здание фермы" 00
6176 * 49	 04 04 87 01 38 C5 C3 9E "Сельхоз. оборудование" 00
6177 * 37	 04 04 87 01 39 C5 C3 9E "Зернохранилище" 00
6178 * 38	 04 04 87 01 3A C5 C3 9E "Погрузка свиней" 00
6179 * 70	 04 04 87 01 3B C5 C3 9E "Погрузка крупного рогатого скота" 00
6180 * 45	 04 04 87 01 3C C5 C3 9E "Цистерна для молока" 00
6181 * 21	 04 04 87 01 3D C5 C3 9E "Стойла" 00
6182 * 49	 04 04 87 01 3E C5 C3 9E "Платформа для фруктов" 00
6183 * 34	 04 04 87 01 3F C5 C3 9E "Склад фруктов" 00

6184 * 74	 04 04 87 01 40 C5 C3 9E "Платформа с минеральными ресурсами" 00
6185 * 36	 04 04 87 01 41 C5 C3 9E "Желоб загрузки" 00
6186 * 63	 04 04 87 01 42 C5 C3 9E "Ленточный транспортер (Север)" 00
6187 * 57	 04 04 87 01 43 C5 C3 9E "Ленточный транспортер (Юг)" 00
6188 * 59	 04 04 87 01 44 C5 C3 9E "Склад минеральных ресурсов" 00
6189 * 44	 04 04 87 01 45 C5 C3 9E "Карьерный самосвал" 00
6190 * 27	 04 04 87 01 46 C5 C3 9E "Бульдозер" 00
6191 * 36	 04 04 87 01 47 C5 C3 9E "Авто погрузчик" 00

6192 * 62	 04 04 87 01 48 C5 C3 9E "Резервуар для хранения нефти" 00

6193 * 41	 04 04 87 01 49 C5 C3 9E "Платформа с лесом" 00
6194 * 28	 04 04 87 01 4A C5 C3 9E "Склад леса" 00
6195 * 35	 04 04 87 01 4B C5 C3 9E "Лесопогрузчик" 00
6196 * 33	 04 04 87 01 4C C5 C3 9E "Лесоукладчик" 00

6197 * 50	 04 04 87 01 7E C5 C3 9E "Охраняемый склад. Тип 1" 00
6198 * 50	 04 04 87 01 7F C5 C3 9E "Охраняемый склад. Тип 2" 00
6199 * 50	 04 04 87 01 80 C5 C3 9E "Охраняемый склад. Тип 3" 00
6200 * 61	 04 04 87 01 7C C5 C3 9E "Переход охраняемой площадки" 00
6201 * 50	 04 04 87 01 81 C5 C3 9E "Охраняемая территория" 00
6202 * 23	 04 04 87 01 7D C5 C3 9E "Переход" 00

6203 * 47	 04 04 87 01 4D C5 C3 9E "Платформа с товарами" 00
6204 * 47	 04 04 87 01 4E C5 C3 9E "Площадка для товаров" 00
6205 * 34	 04 04 87 01 4F C5 C3 9E "Склад товаров" 00
6206 * 50	 04 04 87 01 50 C5 C3 9E "Автопогрузчик товаров" 00
6207 * 75	 04 04 87 01 51 C5 C3 9E "Зона работы погрузчика на платформе" 00
6208 * 51	 04 04 87 01 52 C5 C3 9E "Зона работы погрузчика" 00
6209 * 55	 04 04 87 01 53 C5 C3 9E "Платформа с контейнерами" 00
6210 * 53	 04 04 87 01 54 C5 C3 9E "Площадка с контейнерами" 00
6211 * 58	 04 04 87 01 55 C5 C3 9E "Склад контейнеров с краном" 00
6212 * 42	 04 04 87 01 56 C5 C3 9E "Склад контейнеров" 00
6213 * 58	 04 04 87 01 57 C5 C3 9E "Автопогрузчик контейнеров" 00
6214 * 48	 04 04 87 01 58 C5 C3 9E "Укладчик контейнеров" 00
6215 * 27	 04 04 87 01 59 C5 C3 9E "Ричстакер" 00
6216 * 45	 04 04 87 01 5A C5 C3 9E "Платформа со сталью" 00
6217 * 30	 04 04 87 01 5B C5 C3 9E "Склад стали" 00
6218 * 41	 04 04 87 01 5C C5 C3 9E "Платформа с медью" 00
6219 * 28	 04 04 87 01 5D C5 C3 9E "Склад меди" 00
6220 * 45	 04 04 87 01 5E C5 C3 9E "Платформа с бочками" 00
6221 * 39	 04 04 87 01 5F C5 C3 9E "Площадка с тарой" 00
6222 * 30	 04 04 87 01 60 C5 C3 9E "Склад бочек" 00
6223 * 63	 04 04 87 01 61 C5 C3 9E "Платформа с пиломатериалаами" 00
6224 * 48	 04 04 87 01 62 C5 C3 9E "Склад пиломатериалов" 00
6225 * 47	 04 04 87 01 63 C5 C3 9E "Платформа для бумаги" 00
6226 * 32	 04 04 87 01 64 C5 C3 9E "Склад бумаги" 00
6227 * 38	 04 04 87 01 65 C5 C3 9E "Склад автомашин" 00

6228 * 46	 04 04 87 01 66 C5 C3 9E "Небольшой офис (выс.)" 00
6229 * 27	 04 04 87 01 67 C5 C3 9E "Офис (выс.)" 00
6230 * 50	 04 04 87 01 68 C5 C3 9E "Современный офис (выс.)" 00
6231 * 48	 04 04 87 01 69 C5 C3 9E "Небольшой офис (низк.)" 00
6232 * 29	 04 04 87 01 6A C5 C3 9E "Офис (низк.)" 00
6233 * 52	 04 04 87 01 6B C5 C3 9E "Современный офис (низк.)" 00
6234 * 32	 04 04 87 01 6C C5 C3 9E "Главный офис" 00
6235 * 19	 04 04 87 01 6D C5 C3 9E "Навес" 00
6236 * 36	 04 04 87 01 6E C5 C3 9E "Открытый склад" 00

6237 * 34	 04 04 87 01 6F C5 C3 9E "Офис доставки" 00
6238 * 34	 04 04 87 01 70 C5 C3 9E "Большой склад" 00
6239 * 38	 04 04 87 01 71 C5 C3 9E "Маленький склад" 00
6240 * 42	 04 04 87 01 72 C5 C3 9E "Современный склад" 00
6241 * 38	 04 04 87 01 73 C5 C3 9E "Кирпичный склад" 00
6242 * 56	 04 04 87 01 74 C5 C3 9E "Хранилище драгоценностей" 00

6243 * 66	 04 04 87 01 75 C5 C3 9E "Емкости для хранения жидкостей" 00
6244 * 41	 04 04 87 01 76 C5 C3 9E "Навес над поездом" 00

6245 * 84	 04 04 87 01 77 C5 C3 9E "Склад крупногабаритных грузов (задворки)" 00
6246 * 78	 04 04 87 01 78 C5 C3 9E "Склад крупногабаритных грузов (фасад)" 00
6247 * 65	 04 04 87 01 79 C5 C3 9E "Склад крупногабаритных грузов" 00
6248 * 87	 04 04 87 01 7A C5 C3 9E "Склад крупногабаритных грузов с переходом" 00
6249 * 51	 04 04 87 01 7B C5 C3 9E "Переход над платформой" 00

6250 * 38	 04 04 87 01 82 C5 C3 9E "Простой элемент" 00
6251 * 36	 04 04 87 01 83 C5 C3 9E "Рабочий помост" 00
6252 * 23	 04 04 87 01 84 C5 C3 9E "Переход" 00
6253 * 19	 04 04 87 01 85 C5 C3 9E "Башня" 00
6254 * 17	 04 04 87 01 86 C5 C3 9E "Депо" 00
6255 * 36	 04 04 87 01 87 C5 C3 9E "Стрелка (Север)" 00
6256 * 30	 04 04 87 01 88 C5 C3 9E "Стрелка (Юг)" 00
6257 * 65	 04 04 87 01 89 C5 C3 9E "Буфер для средних линий (Север)" 00
6258 * 59	 04 04 87 01 8A C5 C3 9E "Буфер для средних линий (Юг)" 00
6259 * 32	 04 04 87 01 8B C5 C3 9E "Буфер (Север)" 00
6260 * 26	 04 04 87 01 8C C5 C3 9E "Буфер (Юг)" 00
6261 * 56	 04 04 87 01 8D C5 C3 9E "Элемент без боковых линий" 00

// Station class names
6262 * 56	 04 04 87 01 00 C4 C3 9E "ISR: Готовые наборы станций" 00
6263 * 34	 04 04 87 01 12 C4 C3 9E "ISR: Дополнения" 00
6264 * 26	 04 04 87 01 36 C4 C3 9E "ISR: Добыча" 00
6265 * 47	 04 04 87 01 4D C4 C3 9E "ISR: Готовая продукция" 00
6266 * 34	 04 04 87 01 66 C4 C3 9E "ISR: Сооружения" 00
6267 * 34	 04 04 87 01 82 C4 C3 9E "ISR: Сортировка" 00
// Station names
6268 * 33	 04 04 B0 01 00 C5 C3 9E "Stacja załadunku ziarna" 00
6269 * 22	 04 04 B0 01 01 C5 C3 9E "Stacja żywca" 00
6270 * 24	 04 04 B0 01 02 C5 C3 9E "Silos na zboże" 00
6271 * 27	 04 04 B0 01 03 C5 C3 9E "Silos na minerały" 00
6272 * 32	 04 04 B0 01 04 C5 C3 9E "Rozładunek minerałów" 00
6273 * 37	 04 04 B0 01 05 C5 C3 9E "Zespół przechowywania ropy" 00
6274 * 26	 04 04 B0 01 06 C5 C3 9E "Załadunek drewna" 00
6275 * 26	 04 04 B0 01 07 C5 C3 9E "Stacja strzeżona" 00
6276 * 37	 04 04 B0 01 08 C5 C3 9E "Stacja przepompowywania wody" 00
6277 * 23	 04 04 B0 01 09 C5 C3 9E "Stacja dóbr A" 00
6278 * 23	 04 04 B0 01 0A C5 C3 9E "Stacja dóbr B" 00
6279 * 28	 04 04 B0 01 0E C5 C3 9E "Stacja huty żelaza" 00
6280 * 23	 04 04 B0 01 0C C5 C3 9E "Stacja dóbr C" 00
6281 * 34	 04 04 B0 01 0F C5 C3 9E "Stacja załadunku papieru" 00
6282 * 34	 04 04 B0 01 10 C5 C3 9E "Stacja załadunku owoców" 00
6283 * 35	 04 04 B0 01 11 C5 C3 9E "Stacja załadunku kauczuku" 00
6284 * 32	 04 04 B0 01 0B C5 C3 9E "Stacja towarowa (niska)" 00
6285 * 35	 04 04 B0 01 0D C5 C3 9E "Stacja towarów ciężkich" 00

6286 * 30	 04 04 B0 01 12 C5 C3 9E "Puste perony (niskie)" 00
6287 * 31	 04 04 B0 01 13 C5 C3 9E "Puste perony (wysokie)" 00
6288 * 34	 04 04 B0 01 14 C5 C3 9E "Peron jednostronny (tył)" 00
6289 * 36	 04 04 B0 01 15 C5 C3 9E "Peron jednostronny (przód)" 00
6290 * 18	 04 04 B0 01 16 C5 C3 9E "Rampa (N)" 00
6291 * 18	 04 04 B0 01 17 C5 C3 9E "Rampa (S)" 00
6292 * 31	 04 04 B0 01 18 C5 C3 9E "Rampa jednostronna (N)" 00
6293 * 31	 04 04 B0 01 19 C5 C3 9E "Rampa jednostronna (S)" 00
6294 * 24	 04 04 B0 01 1C C5 C3 9E "Bufory (niskie)" 00
6295 * 25	 04 04 B0 01 1D C5 C3 9E "Bufory (wysokie)" 00
6296 * 30	 04 04 B0 01 1E C5 C3 9E "Pusty kwadrat (niski)" 00
6297 * 45	 04 04 B0 01 1F C5 C3 9E "Pusty kwadrat z ogrodzeniem (niskie)" 00
6298 * 31	 04 04 B0 01 20 C5 C3 9E "Pusty kwadrat (wysoki)" 00
6299 * 28	 04 04 B0 01 1A C5 C3 9E "Rampa (N, bez toru)" 00
6300 * 28	 04 04 B0 01 1B C5 C3 9E "Rampa (S, bez toru)" 00

6301 * 14	 04 04 B0 01 21 C5 C3 9E "Droga" 00
6302 * 24	 04 04 B0 01 22 C5 C3 9E "Droga z płotem" 00
6303 * 22	 04 04 B0 01 23 C5 C3 9E "Skrzyżowanie" 00
6304 * 34	 04 04 B0 01 24 C5 C3 9E "Parking dla ciężarówek" 00
6305 * 26	 04 04 B0 01 25 C5 C3 9E "Wjazd drogowy (S)" 00
6306 * 26	 04 04 B0 01 26 C5 C3 9E "Wjazd drogowy (N)" 00
6307 * 43	 04 04 B0 01 27 C5 C3 9E "Dojazd dla pojazdów drogowych (N)" 00
6308 * 43	 04 04 B0 01 28 C5 C3 9E "Dojazd dla pojazdów drogowych (S)" 00

6309 * 21	 04 04 B0 01 29 C5 C3 9E "Wieża wodna" 00
6310 * 15	 04 04 B0 01 2A C5 C3 9E "Dźwig" 00
6311 * 25	 04 04 B0 01 2B C5 C3 9E "Dźwig na torach" 00
6312 * 26	 04 04 B0 01 2C C5 C3 9E "Suwnica pomostowa" 00

6313 * 20	 04 04 B0 01 2D C5 C3 9E "Suwnica (N)" 00
6314 * 31	 04 04 B0 01 2E C5 C3 9E "Suwnica (N, beztorowa)" 00
6315 * 20	 04 04 B0 01 2F C5 C3 9E "Suwnica (S)" 00
6316 * 31	 04 04 B0 01 30 C5 C3 9E "Suwnica (S, beztorowa)" 00
6317 * 31	 04 04 B0 01 31 C5 C3 9E "Suwnica (N, klasyczna)" 00
6318 * 42	 04 04 B0 01 32 C5 C3 9E "Suwnica (N, beztorowa, klasyczna)" 00
6319 * 31	 04 04 B0 01 33 C5 C3 9E "Suwnica (S, klasyczna)" 00
6320 * 42	 04 04 B0 01 34 C5 C3 9E "Suwnica (S, beztorowa, klasyczna)" 00
6321 * 26	 04 04 B0 01 35 C5 C3 9E "Żuraw samojezdny" 00

6322 * 25	 04 04 B0 01 36 C5 C3 9E "Budynki rolnicze" 00
6323 * 31	 04 04 B0 01 37 C5 C3 9E "Małe budynki rolnicze" 00
6324 * 27	 04 04 B0 01 38 C5 C3 9E "Budynki farmerskie" 00
6325 * 25	 04 04 B0 01 39 C5 C3 9E "Silosy na zboże" 00
6326 * 27	 04 04 B0 01 3A C5 C3 9E "Zagroda dla świń" 00
6327 * 24	 04 04 B0 01 3B C5 C3 9E "Boksy dla krów" 00
6328 * 27	 04 04 B0 01 3C C5 C3 9E "Zbiorniki na mleko" 00
6329 * 24	 04 04 B0 01 3D C5 C3 9E "Obory dla krów" 00
6330 * 25	 04 04 B0 01 3E C5 C3 9E "Perony z owocami" 00
6331 * 14	 04 04 B0 01 3F C5 C3 9E "Owoce" 00

6332 * 29	 04 04 B0 01 40 C5 C3 9E "Platformy z urobkiem" 00
6333 * 26	 04 04 B0 01 41 C5 C3 9E "Zsyp załadunkowy" 00
6334 * 24	 04 04 B0 01 42 C5 C3 9E "Taśmociąg (N)" 00
6335 * 24	 04 04 B0 01 43 C5 C3 9E "Taśmociąg (S)" 00
6336 * 15	 04 04 B0 01 44 C5 C3 9E "Urobek" 00
6337 * 17	 04 04 B0 01 45 C5 C3 9E "Wywrotka" 00
6338 * 18	 04 04 B0 01 46 C5 C3 9E "Buldożer" 00
6339 * 19	 04 04 B0 01 47 C5 C3 9E "Ładowarka" 00

6340 * 27	 04 04 B0 01 48 C5 C3 9E "Zbiorniki na ropę" 00

6341 * 26	 04 04 B0 01 49 C5 C3 9E "Platformy drzewne" 00
6342 * 20	 04 04 B0 01 4A C5 C3 9E "Stos drewna" 00
6343 * 26	 04 04 B0 01 4B C5 C3 9E "Ładowarka kłód" 00
6344 * 26	 04 04 B0 01 4C C5 C3 9E "Podnośnik kłód" 00

6345 * 31	 04 04 B0 01 7E C5 C3 9E "Strzeżony składzik A" 00
6346 * 31	 04 04 B0 01 7F C5 C3 9E "Strzeżony składzik B" 00
6347 * 31	 04 04 B0 01 80 C5 C3 9E "Strzeżony składzik C" 00
6348 * 41	 04 04 B0 01 7C C5 C3 9E "Kładka naziemna (niskie perony)" 00
6349 * 27	 04 04 B0 01 81 C5 C3 9E "Parking strzeżony" 00
6350 * 38	 04 04 B0 01 7D C5 C3 9E "Kładka naziemna (bez torów)" 00

6351 * 27	 04 04 B0 01 4D C5 C3 9E "Platformy towarowe" 00
6352 * 33	 04 04 B0 01 4E C5 C3 9E "Perony towarowe (niskie)" 00
6353 * 14	 04 04 B0 01 4F C5 C3 9E "Towar" 00
6354 * 35	 04 04 B0 01 50 C5 C3 9E "Wózek widłowy (skrzynki)" 00
6355 * 39	 04 04 B0 01 51 C5 C3 9E "Perony dla wózków widłowych" 00
6356 * 47	 04 04 B0 01 52 C5 C3 9E "Perony dla wózków widłowych (niska)" 00
6357 * 41	 04 04 B0 01 53 C5 C3 9E "Platformy załadunku kontenerów" 00
6358 * 37	 04 04 B0 01 54 C5 C3 9E "Perony na kontenery (niskie)" 00
6359 * 30	 04 04 B0 01 55 C5 C3 9E "Kontenery z dźwigiem" 00
6360 * 18	 04 04 B0 01 56 C5 C3 9E "Kontenery" 00
6361 * 36	 04 04 B0 01 57 C5 C3 9E "Wózek widłowy (kontenery)" 00
6362 * 28	 04 04 B0 01 58 C5 C3 9E "Podnośnik widłowy" 00
6363 * 28	 04 04 B0 01 59 C5 C3 9E "Wysięgnik widłowy" 00
6364 * 28	 04 04 B0 01 5A C5 C3 9E "Platformy ze stalą" 00
6365 * 13	 04 04 B0 01 5B C5 C3 9E "Stal" 00
6366 * 29	 04 04 B0 01 5C C5 C3 9E "Platformy z miedzią" 00
6367 * 15	 04 04 B0 01 5D C5 C3 9E "Miedź" 00
6368 * 29	 04 04 B0 01 5E C5 C3 9E "Platformy z beczkami" 00
6369 * 34	 04 04 B0 01 5F C5 C3 9E "Perony na beczki (niskie)" 00
6370 * 15	 04 04 B0 01 60 C5 C3 9E "Beczki" 00
6371 * 28	 04 04 B0 01 61 C5 C3 9E "Platformy z deskami" 00
6372 * 14	 04 04 B0 01 62 C5 C3 9E "Deski" 00
6373 * 26	 04 04 B0 01 63 C5 C3 9E "Perony z papierem" 00
6374 * 15	 04 04 B0 01 64 C5 C3 9E "Papier" 00
6375 * 18	 04 04 B0 01 65 C5 C3 9E "Samochody" 00

6376 * 26	 04 04 B0 01 66 C5 C3 9E "Biuro (klasyczne)" 00
6377 * 14	 04 04 B0 01 67 C5 C3 9E "Biuro" 00
6378 * 27	 04 04 B0 01 68 C5 C3 9E "Biuro (nowoczesne)" 00
6379 * 34	 04 04 B0 01 69 C5 C3 9E "Biuro (niskie, klasyczne)" 00
6380 * 23	 04 04 B0 01 6A C5 C3 9E "Biuro (niskie)" 00
6381 * 35	 04 04 B0 01 6B C5 C3 9E "Biuro (niskie, nowoczesne)" 00
6382 * 23	 04 04 B0 01 6C C5 C3 9E "Główne biuro" 00
6383 * 18	 04 04 B0 01 6D C5 C3 9E "Składzik" 00
6384 * 29	 04 04 B0 01 6E C5 C3 9E "Otwarte składowisko" 00

6385 * 27	 04 04 B0 01 6F C5 C3 9E "Biuro transportowe" 00
6386 * 22	 04 04 B0 01 70 C5 C3 9E "Duży magazyn" 00
6387 * 22	 04 04 B0 01 71 C5 C3 9E "Mały magazyn" 00
6388 * 27	 04 04 B0 01 72 C5 C3 9E "Nowoczesny magazyn" 00
6389 * 24	 04 04 B0 01 73 C5 C3 9E "Ceglany magazyn" 00
6390 * 30	 04 04 B0 01 74 C5 C3 9E "Miejsce magazynowania" 00

6391 * 18	 04 04 B0 01 75 C5 C3 9E "Zbiorniki" 00
6392 * 23	 04 04 B0 01 76 C5 C3 9E "Lokomotywownia" 00

6393 * 32	 04 04 B0 01 77 C5 C3 9E "Budynek towarowy (tył)" 00
6394 * 34	 04 04 B0 01 78 C5 C3 9E "Budynek towarowy (przód)" 00
6395 * 25	 04 04 B0 01 79 C5 C3 9E "Budynki towarowe" 00
6396 * 46	 04 04 B0 01 7A C5 C3 9E "Budynki towarowe z kładką naziemną" 00
6397 * 42	 04 04 B0 01 7B C5 C3 9E "Kładka naziemna (wysokie perony)" 00

6398 * 20	 04 04 B0 01 82 C5 C3 9E "Zwykły tor" 00
6399 * 16	 04 04 B0 01 83 C5 C3 9E "Kładka" 00
6400 * 22	 04 04 B0 01 84 C5 C3 9E "Skrzyżowanie" 00
6401 * 15	 04 04 B0 01 85 C5 C3 9E "Wieża" 00
6402 * 19	 04 04 B0 01 86 C5 C3 9E "Zadaszenie" 00
6403 * 22	 04 04 B0 01 87 C5 C3 9E "Zwrotnica (N)" 00
6404 * 22	 04 04 B0 01 88 C5 C3 9E "Zwrotnica (S)" 00
6405 * 29	 04 04 B0 01 89 C5 C3 9E "Bufory środkowe (N)" 00
6406 * 29	 04 04 B0 01 8A C5 C3 9E "Bufory środkowe (S)" 00
6407 * 19	 04 04 B0 01 8B C5 C3 9E "Bufory (N)" 00
6408 * 19	 04 04 B0 01 8C C5 C3 9E "Bufory (S)" 00
6409 * 33	 04 04 B0 01 8D C5 C3 9E "Tor bez szyny środkowej" 00

// Station class names
6410 * 20	 04 04 B0 01 00 C4 C3 9E "ISR: Stacje" 00
6411 * 26	 04 04 B0 01 12 C4 C3 9E "ISR: Wyposażenie" 00
6412 * 21	 04 04 B0 01 36 C4 C3 9E "ISR: Surowce" 00
6413 * 29	 04 04 B0 01 4D C4 C3 9E "ISR: Gotowe produkty" 00
6414 * 21	 04 04 B0 01 66 C4 C3 9E "ISR: Budynki" 00
6415 * 32	 04 04 B0 01 82 C4 C3 9E "ISR: Stacja rozrządowa" 00
// Station names
6416 * 32	 04 04 B8 01 00 C5 C3 9E "Stanica za utovar žita" 00
6417 * 24	 04 04 B8 01 01 C5 C3 9E "Stočna stanica" 00
6418 * 23	 04 04 B8 01 02 C5 C3 9E "Silos za žito" 00
6419 * 25	 04 04 B8 01 03 C5 C3 9E "Silos za rudače" 00
6420 * 32	 04 04 B8 01 04 C5 C3 9E "Istovarivač za rudače" 00
6421 * 27	 04 04 B8 01 05 C5 C3 9E "Naftna postrojenja" 00
6422 * 31	 04 04 B8 01 06 C5 C3 9E "Stanica za utovar drva" 00
6423 * 26	 04 04 B8 01 07 C5 C3 9E "Osigurana stanica" 00
6424 * 31	 04 04 B8 01 08 C5 C3 9E "Pumpna stanica za vodu" 00
6425 * 26	 04 04 B8 01 09 C5 C3 9E "Teretna stanica A" 00
6426 * 26	 04 04 B8 01 0A C5 C3 9E "Teretna stanica B" 00
6427 * 27	 04 04 B8 01 0E C5 C3 9E "Stanica čeličane" 00
6428 * 26	 04 04 B8 01 0C C5 C3 9E "Teretna stanica C" 00
6429 * 33	 04 04 B8 01 0F C5 C3 9E "Stanica za utovar papira" 00
6430 * 32	 04 04 B8 01 10 C5 C3 9E "Stanica za utovar voća" 00
6431 * 31	 04 04 B8 01 11 C5 C3 9E "Stanica za utovar gume" 00
6432 * 32	 04 04 B8 01 0B C5 C3 9E "Teretna stanica (niska)" 00
6433 * 33	 04 04 B8 01 0D C5 C3 9E "Stanica za teške terete" 00

6434 * 30	 04 04 B8 01 12 C5 C3 9E "Prazni peroni (niski)" 00
6435 * 31	 04 04 B8 01 13 C5 C3 9E "Prazni peroni (visoki)" 00
6436 * 36	 04 04 B8 01 14 C5 C3 9E "Jednostrani peroni (straga)" 00
6437 * 38	 04 04 B8 01 15 C5 C3 9E "Jednostrani peroni (sprijeda)" 00
6438 * 18	 04 04 B8 01 16 C5 C3 9E "Rampa (N)" 00
6439 * 18	 04 04 B8 01 17 C5 C3 9E "Rampa (S)" 00
6440 * 30	 04 04 B8 01 18 C5 C3 9E "Jednostrana rampa (N)" 00
6441 * 30	 04 04 B8 01 19 C5 C3 9E "Jednostrana rampa (S)" 00
6442 * 26	 04 04 B8 01 1C C5 C3 9E "Odbojnici (niski)" 00
6443 * 27	 04 04 B8 01 1D C5 C3 9E "Odbojnici (visoki)" 00
6444 * 29	 04 04 B8 01 1E C5 C3 9E "Prazno polje (nisko)" 00
6445 * 40	 04 04 B8 01 1F C5 C3 9E "Prazno polje sa ogradom (nisko)" 00
6446 * 30	 04 04 B8 01 20 C5 C3 9E "Prazno polje (visoko)" 00
6447 * 34	 04 04 B8 01 1A C5 C3 9E "Rampa (N, bez kolosijeka)" 00
6448 * 34	 04 04 B8 01 1B C5 C3 9E "Rampa (S, bez kolosijeka)" 00

6449 * 14	 04 04 B8 01 21 C5 C3 9E "Cesta" 00
6450 * 24	 04 04 B8 01 22 C5 C3 9E "Cesta s ogradom" 00
6451 * 34	 04 04 B8 01 23 C5 C3 9E "Cestovno-pružni prijelaz" 00
6452 * 32	 04 04 B8 01 24 C5 C3 9E "Kamionsko parkiralište" 00
6453 * 26	 04 04 B8 01 25 C5 C3 9E "Cestovni ulaz (S)" 00
6454 * 26	 04 04 B8 01 26 C5 C3 9E "Cestovni ulaz (N)" 00
6455 * 39	 04 04 B8 01 27 C5 C3 9E "Pristup za cestovna vozila (N)" 00
6456 * 39	 04 04 B8 01 28 C5 C3 9E "Pristup za cestovna vozila (S)" 00

6457 * 19	 04 04 B8 01 29 C5 C3 9E "Vodotoranj" 00
6458 * 17	 04 04 B8 01 2A C5 C3 9E "Dizalica" 00
6459 * 28	 04 04 B8 01 2B C5 C3 9E "Dizalica na šinama" 00
6460 * 26	 04 04 B8 01 2C C5 C3 9E "Nadvisna dizalica" 00

6461 * 26	 04 04 B8 01 2D C5 C3 9E "Pokretni kran (N)" 00
6462 * 42	 04 04 B8 01 2E C5 C3 9E "Pokretni kran (N, bez kolosijeka)" 00
6463 * 26	 04 04 B8 01 2F C5 C3 9E "Pokretni kran (S)" 00
6464 * 42	 04 04 B8 01 30 C5 C3 9E "Pokretni kran (S, bez kolosijeka)" 00
6465 * 37	 04 04 B8 01 31 C5 C3 9E "Pokretni kran (N, starinski)" 00
6466 * 53	 04 04 B8 01 32 C5 C3 9E "Pokretni kran (N, bez kolosijeka, starinski)" 00
6467 * 37	 04 04 B8 01 33 C5 C3 9E "Pokretni kran (S, starinski)" 00
6468 * 53	 04 04 B8 01 34 C5 C3 9E "Pokretni kran (S, bez kolosijeka, starinski)" 00
6469 * 32	 04 04 B8 01 35 C5 C3 9E "Dizalica na gusjenicama" 00

6470 * 21	 04 04 B8 01 36 C5 C3 9E "Zgrada farme" 00
6471 * 26	 04 04 B8 01 37 C5 C3 9E "Mala zgrada farme" 00
6472 * 26	 04 04 B8 01 38 C5 C3 9E "Postrojenja farme" 00
6473 * 23	 04 04 B8 01 39 C5 C3 9E "Žitni tankovi" 00
6474 * 28	 04 04 B8 01 3A C5 C3 9E "Dvorište za svinje" 00
6475 * 26	 04 04 B8 01 3B C5 C3 9E "Stočno dvorište" 00
6476 * 26	 04 04 B8 01 3C C5 C3 9E "Mliječni tankovi" 00
6477 * 30	 04 04 B8 01 3D C5 C3 9E "Stočne nadstrešnice" 00
6478 * 24	 04 04 B8 01 3E C5 C3 9E "Peroni s voćem" 00
6479 * 14	 04 04 B8 01 3F C5 C3 9E "Voće" 00

6480 * 26	 04 04 B8 01 40 C5 C3 9E "Peroni s rudačom" 00
6481 * 34	 04 04 B8 01 41 C5 C3 9E "Utovarni šaht za vlakove" 00
6482 * 27	 04 04 B8 01 42 C5 C3 9E "Pokretna traka (N)" 00
6483 * 27	 04 04 B8 01 43 C5 C3 9E "Pokretna traka (S)" 00
6484 * 21	 04 04 B8 01 44 C5 C3 9E "Hrpa rudače" 00
6485 * 26	 04 04 B8 01 45 C5 C3 9E "Kamion za rudače" 00
6486 * 31	 04 04 B8 01 46 C5 C3 9E "Buldožer (s rudačom)" 00
6487 * 33	 04 04 B8 01 47 C5 C3 9E "Utovarivač (s rudačom)" 00

6488 * 28	 04 04 B8 01 48 C5 C3 9E "Rezervoari za naftu" 00

6489 * 23	 04 04 B8 01 49 C5 C3 9E "Peroni s drvom" 00
6490 * 18	 04 04 B8 01 4A C5 C3 9E "Hrpa drva" 00
6491 * 28	 04 04 B8 01 4B C5 C3 9E "Utovarivač trupaca" 00
6492 * 24	 04 04 B8 01 4C C5 C3 9E "Slagač trupaca" 00

6493 * 34	 04 04 B8 01 7E C5 C3 9E "Osigurana nadstrešnica A" 00
6494 * 34	 04 04 B8 01 7F C5 C3 9E "Osigurana nadstrešnica B" 00
6495 * 34	 04 04 B8 01 80 C5 C3 9E "Osigurana nadstrešnica C" 00
6496 * 35	 04 04 B8 01 7C C5 C3 9E "Nadprijelaz (niski peroni)" 00
6497 * 26	 04 04 B8 01 81 C5 C3 9E "Osigurani parking" 00
6498 * 32	 04 04 B8 01 7D C5 C3 9E "Nadprijelaz (bez pruge)" 00

6499 * 32	 04 04 B8 01 4D C5 C3 9E "Peroni s općim teretom" 00
6500 * 40	 04 04 B8 01 4E C5 C3 9E "Peroni s općim teretom (niski)" 00
6501 * 20	 04 04 B8 01 4F C5 C3 9E "Opći teret" 00
6502 * 32	 04 04 B8 01 50 C5 C3 9E "Viličar (sa sanducima)" 00
6503 * 28	 04 04 B8 01 51 C5 C3 9E "Peron sa viličarem" 00
6504 * 36	 04 04 B8 01 52 C5 C3 9E "Peron sa viličarem (niska)" 00
6505 * 36	 04 04 B8 01 53 C5 C3 9E "Peroni za utovar kontejnera" 00
6506 * 38	 04 04 B8 01 54 C5 C3 9E "Peroni s kontejnerima (niski)" 00
6507 * 31	 04 04 B8 01 55 C5 C3 9E "Kontejneri s dizalicom" 00
6508 * 19	 04 04 B8 01 56 C5 C3 9E "Kontejneri" 00
6509 * 35	 04 04 B8 01 57 C5 C3 9E "Viličar (sa kontejnerima)" 00
6510 * 27	 04 04 B8 01 58 C5 C3 9E "Slagač kontejnera" 00
6511 * 36	 04 04 B8 01 59 C5 C3 9E "Pokretni most za kontejnere" 00
6512 * 26	 04 04 B8 01 5A C5 C3 9E "Peroni s čelikom" 00
6513 * 15	 04 04 B8 01 5B C5 C3 9E "Čelik" 00
6514 * 24	 04 04 B8 01 5C C5 C3 9E "Peroni s bakrom" 00
6515 * 14	 04 04 B8 01 5D C5 C3 9E "Bakar" 00
6516 * 26	 04 04 B8 01 5E C5 C3 9E "Peroni s bačvama" 00
6517 * 34	 04 04 B8 01 5F C5 C3 9E "Peroni s bačvama (niski)" 00
6518 * 15	 04 04 B8 01 60 C5 C3 9E "Bačve" 00
6519 * 25	 04 04 B8 01 61 C5 C3 9E "Peroni s daskama" 00
6520 * 14	 04 04 B8 01 62 C5 C3 9E "Daske" 00
6521 * 25	 04 04 B8 01 63 C5 C3 9E "Peroni s papirom" 00
6522 * 14	 04 04 B8 01 64 C5 C3 9E "Papir" 00
6523 * 19	 04 04 B8 01 65 C5 C3 9E "Automobili" 00

6524 * 25	 04 04 B8 01 66 C5 C3 9E "Ured (starinski)" 00
6525 * 13	 04 04 B8 01 67 C5 C3 9E "Ured" 00
6526 * 23	 04 04 B8 01 68 C5 C3 9E "Ured (moderni)" 00
6527 * 32	 04 04 B8 01 69 C5 C3 9E "Ured (niski, starinski)" 00
6528 * 21	 04 04 B8 01 6A C5 C3 9E "Ured (niski)" 00
6529 * 30	 04 04 B8 01 6B C5 C3 9E "Ured (niski, moderni)" 00
6530 * 30	 04 04 B8 01 6C C5 C3 9E "Glavna upravna zgrada" 00
6531 * 22	 04 04 B8 01 6D C5 C3 9E "Nadstrešnice" 00
6532 * 48	 04 04 B8 01 6E C5 C3 9E "Nadstrešnice za otvoreno skladištenje" 00

6533 * 22	 04 04 B8 01 6F C5 C3 9E "Dostavni ured" 00
6534 * 26	 04 04 B8 01 70 C5 C3 9E "Veliko skladište" 00
6535 * 24	 04 04 B8 01 71 C5 C3 9E "Malo skladište" 00
6536 * 27	 04 04 B8 01 72 C5 C3 9E "Moderno skladište" 00
6537 * 28	 04 04 B8 01 73 C5 C3 9E "Skladište od cigle" 00
6538 * 19	 04 04 B8 01 74 C5 C3 9E "Skladišta" 00

6539 * 19	 04 04 B8 01 75 C5 C3 9E "Rezervoari" 00
6540 * 30	 04 04 B8 01 76 C5 C3 9E "Skladište za vlakove" 00

6541 * 32	 04 04 B8 01 77 C5 C3 9E "Teretna zgrada (straga)" 00
6542 * 34	 04 04 B8 01 78 C5 C3 9E "Teretna zgrada (sprijeda)" 00
6543 * 23	 04 04 B8 01 79 C5 C3 9E "Teretne zgrade" 00
6544 * 40	 04 04 B8 01 7A C5 C3 9E "Teretne zgrade sa nadprijelazom" 00
6545 * 36	 04 04 B8 01 7B C5 C3 9E "Nadprijelaz (visoki peroni)" 00

6546 * 26	 04 04 B8 01 82 C5 C3 9E "Osnovni kolosijek" 00
6547 * 15	 04 04 B8 01 83 C5 C3 9E "Prolaz" 00
6548 * 17	 04 04 B8 01 84 C5 C3 9E "Prijelaz" 00
6549 * 15	 04 04 B8 01 85 C5 C3 9E "Toranj" 00
6550 * 19	 04 04 B8 01 86 C5 C3 9E "Sklonište" 00
6551 * 22	 04 04 B8 01 87 C5 C3 9E "Skretnica (N)" 00
6552 * 22	 04 04 B8 01 88 C5 C3 9E "Skretnica (S)" 00
6553 * 33	 04 04 B8 01 89 C5 C3 9E "Središnji odbojnici (N)" 00
6554 * 33	 04 04 B8 01 8A C5 C3 9E "Središnji odbojnici (S)" 00
6555 * 21	 04 04 B8 01 8B C5 C3 9E "Odbojnik (N)" 00
6556 * 21	 04 04 B8 01 8C C5 C3 9E "Odbojnik (S)" 00
6557 * 40	 04 04 B8 01 8D C5 C3 9E "Kolosijek bez srednje tračnice" 00

// Station class names
6558 * 21	 04 04 B8 01 00 C4 C3 9E "ISR: Stanice" 00
6559 * 25	 04 04 B8 01 12 C4 C3 9E "ISR: Instalacije" 00
6560 * 22	 04 04 B8 01 36 C4 C3 9E "ISR: Sirovine" 00
6561 * 26	 04 04 B8 01 4D C4 C3 9E "ISR: Prerađevine" 00
6562 * 25	 04 04 B8 01 66 C4 C3 9E "ISR: Postrojenja" 00
6563 * 32	 04 04 B8 01 82 C4 C3 9E "ISR: Otpremna dvorišta" 00
// Station names
6564 * 33	 04 04 A4 01 00 C5 C3 9E "Gabona töltõ állomás" 00
6565 * 33	 04 04 A4 01 01 C5 C3 9E "Állat rakodó állomás" 00
6566 * 21	 04 04 A4 01 02 C5 C3 9E "Gabona siló" 00
6567 * 31	 04 04 A4 01 03 C5 C3 9E "Ásványianyag töltõ" 00
6568 * 32	 04 04 A4 01 04 C5 C3 9E "Ásványianyag ürítõ" 00
6569 * 30	 04 04 A4 01 05 C5 C3 9E "Olaj töltõ/ürítõ" 00
6570 * 29	 04 04 A4 01 06 C5 C3 9E "Fa rakodó állomás" 00
6571 * 30	 04 04 A4 01 07 C5 C3 9E "Értéktárgy rakodó" 00
6572 * 30	 04 04 A4 01 08 C5 C3 9E "Víz töltõ/ürítõ" 00
6573 * 23	 04 04 A4 01 09 C5 C3 9E "Áru rakodó A" 00
6574 * 23	 04 04 A4 01 0A C5 C3 9E "Áru rakodó B" 00
6575 * 27	 04 04 A4 01 0E C5 C3 9E "Acélárú rakodó" 00
6576 * 23	 04 04 A4 01 0C C5 C3 9E "Áru rakodó C" 00
6577 * 33	 04 04 A4 01 0F C5 C3 9E "Papír rakodó állomás" 00
6578 * 37	 04 04 A4 01 10 C5 C3 9E "Gyümölcs rakodó állomás" 00
6579 * 31	 04 04 A4 01 11 C5 C3 9E "Gumi rakodó állomás" 00
6580 * 32	 04 04 A4 01 0B C5 C3 9E "Áru rakodó (alacsony)" 00
6581 * 37	 04 04 A4 01 0D C5 C3 9E "Nehézáru rakodó állomás" 00

6582 * 33	 04 04 A4 01 12 C5 C3 9E "Üres rakodó (alacsony)" 00
6583 * 30	 04 04 A4 01 13 C5 C3 9E "Üres rakodó (magas)" 00
6584 * 36	 04 04 A4 01 14 C5 C3 9E "Féloldalas peron (túlsó)" 00
6585 * 37	 04 04 A4 01 15 C5 C3 9E "Féloldalas peron (innenső)" 00
6586 * 20	 04 04 A4 01 16 C5 C3 9E "Rámpa (É)" 00
6587 * 19	 04 04 A4 01 17 C5 C3 9E "Rámpa (D)" 00
6588 * 32	 04 04 A4 01 18 C5 C3 9E "Féloldalas rámpa (É)" 00
6589 * 31	 04 04 A4 01 19 C5 C3 9E "Féloldalas rámpa (D)" 00
6590 * 29	 04 04 A4 01 1C C5 C3 9E "Ütközõ (alacsony)" 00
6591 * 26	 04 04 A4 01 1D C5 C3 9E "Ütközõ (magas)" 00
6592 * 31	 04 04 A4 01 1E C5 C3 9E "Üres mezõ (alacsony)" 00
6593 * 44	 04 04 A4 01 1F C5 C3 9E "Üres mező kerítéssel (alacsony)" 00
6594 * 28	 04 04 A4 01 20 C5 C3 9E "Üres mezõ (magas)" 00
6595 * 30	 04 04 A4 01 1A C5 C3 9E "Rámpa (É, nem-sín)" 00
6596 * 29	 04 04 A4 01 1B C5 C3 9E "Rámpa (D, nem-sín)" 00

6597 * 12	 04 04 A4 01 21 C5 C3 9E "Út" 00
6598 * 25	 04 04 A4 01 22 C5 C3 9E "Út kerítéssel" 00
6599 * 26	 04 04 A4 01 23 C5 C3 9E "Vasúti átjáró" 00
6600 * 28	 04 04 A4 01 24 C5 C3 9E "Teherautó parkoló" 00
6601 * 26	 04 04 A4 01 25 C5 C3 9E "Közúti kapu (D)" 00
6602 * 27	 04 04 A4 01 26 C5 C3 9E "Közúti kapu (É)" 00
6603 * 28	 04 04 A4 01 27 C5 C3 9E "Kocsifelhajtó (É)" 00
6604 * 27	 04 04 A4 01 28 C5 C3 9E "Kicsifelhajtó (D)" 00

6605 * 19	 04 04 A4 01 29 C5 C3 9E "Víztorony" 00
6606 * 19	 04 04 A4 01 2A C5 C3 9E "Toronydaru" 00
6607 * 16	 04 04 A4 01 2B C5 C3 9E "Bakdaru" 00
6608 * 18	 04 04 A4 01 2C C5 C3 9E "Futódaru" 00

6609 * 28	 04 04 A4 01 2D C5 C3 9E "Konténer daru (É)" 00
6610 * 33	 04 04 A4 01 2E C5 C3 9E "Konténer daru (É, v.n)" 00
6611 * 27	 04 04 A4 01 2F C5 C3 9E "Konténer daru (D)" 00
6612 * 32	 04 04 A4 01 30 C5 C3 9E "Konténer daru (D, v.n)" 00
6613 * 26	 04 04 A4 01 31 C5 C3 9E "Portál daru (É)" 00
6614 * 31	 04 04 A4 01 32 C5 C3 9E "Portál daru (É, v.n)" 00
6615 * 25	 04 04 A4 01 33 C5 C3 9E "Portál daru (D)" 00
6616 * 30	 04 04 A4 01 34 C5 C3 9E "Portál daru (D, v.n)" 00
6617 * 25	 04 04 A4 01 35 C5 C3 9E "Lánctalpas daru" 00

6618 * 33	 04 04 A4 01 36 C5 C3 9E "Mezõgazdasági épület" 00
6619 * 37	 04 04 A4 01 37 C5 C3 9E "Kis mezõgazdasági épület" 00
6620 * 37	 04 04 A4 01 38 C5 C3 9E "Mezõgazd. kiszolgáló ép." 00
6621 * 23	 04 04 A4 01 39 C5 C3 9E "Gabonatároló" 00
6622 * 19	 04 04 A4 01 3A C5 C3 9E "Disznóól" 00
6623 * 22	 04 04 A4 01 3B C5 C3 9E "Marhakarámok" 00
6624 * 22	 04 04 A4 01 3C C5 C3 9E "Tejtartályok" 00
6625 * 17	 04 04 A4 01 3D C5 C3 9E "Marhaól" 00
6626 * 27	 04 04 A4 01 3E C5 C3 9E "Gyümölcs rakodó" 00
6627 * 19	 04 04 A4 01 3F C5 C3 9E "Gyümölcs" 00

6628 * 32	 04 04 A4 01 40 C5 C3 9E "Ásványianyag tároló" 00
6629 * 31	 04 04 A4 01 41 C5 C3 9E "Kocsitöltõ tölcsér" 00
6630 * 32	 04 04 A4 01 42 C5 C3 9E "Szalagos felhordó (É)" 00
6631 * 31	 04 04 A4 01 43 C5 C3 9E "Szalagos felhordó (D)" 00
6632 * 32	 04 04 A4 01 44 C5 C3 9E "Ásványianyag tároló" 00
6633 * 36	 04 04 A4 01 45 C5 C3 9E "Anyagszállító teherautó" 00
6634 * 35	 04 04 A4 01 46 C5 C3 9E "Bulldozer (ásványianyag)" 00
6635 * 36	 04 04 A4 01 47 C5 C3 9E "Homlokrakodó (ásványia.)" 00

6636 * 22	 04 04 A4 01 48 C5 C3 9E "Olaj tartály" 00

6637 * 19	 04 04 A4 01 49 C5 C3 9E "Fa rakodó" 00
6638 * 16	 04 04 A4 01 4A C5 C3 9E "Fatelep" 00
6639 * 19	 04 04 A4 01 4B C5 C3 9E "Fa rakodó" 00
6640 * 20	 04 04 A4 01 4C C5 C3 9E "Fa rendezõ" 00

6641 * 33	 04 04 A4 01 7E C5 C3 9E "Értáktárgy tároló A" 00
6642 * 33	 04 04 A4 01 7F C5 C3 9E "Értáktárgy tároló B" 00
6643 * 33	 04 04 A4 01 80 C5 C3 9E "Értáktárgy tároló C" 00
6644 * 38	 04 04 A4 01 7C C5 C3 9E "Felüljáró (alacsony peron)" 00
6645 * 31	 04 04 A4 01 81 C5 C3 9E "Értéktárgy parkoló" 00
6646 * 40	 04 04 A4 01 7D C5 C3 9E "Felüljáró (vasút nélküli)" 00

6647 * 32	 04 04 A4 01 4D C5 C3 9E "Általános árurakodó" 00
6648 * 43	 04 04 A4 01 4E C5 C3 9E "Általános árurakodó (alacsony)" 00
6649 * 33	 04 04 A4 01 4F C5 C3 9E "Általános árutároló" 00
6650 * 27	 04 04 A4 01 50 C5 C3 9E "Targonca (ládák)" 00
6651 * 25	 04 04 A4 01 51 C5 C3 9E "Targoncás peron" 00
6652 * 37	 04 04 A4 01 52 C5 C3 9E "Targonca (ládák, alacsony)" 00
6653 * 26	 04 04 A4 01 53 C5 C3 9E "Konténer rakodó" 00
6654 * 37	 04 04 A4 01 54 C5 C3 9E "Konténer rakodó (alacsony)" 00
6655 * 33	 04 04 A4 01 55 C5 C3 9E "Darus konténer rendezõ" 00
6656 * 20	 04 04 A4 01 56 C5 C3 9E "Konténerek" 00
6657 * 29	 04 04 A4 01 57 C5 C3 9E "Targonca (konténer)" 00
6658 * 36	 04 04 A4 01 58 C5 C3 9E "Rakodórendezõ (konténer)" 00
6659 * 33	 04 04 A4 01 59 C5 C3 9E "Homlokrakodó (targonca)" 00
6660 * 22	 04 04 A4 01 5A C5 C3 9E "Acél rakodó" 00
6661 * 23	 04 04 A4 01 5B C5 C3 9E "Acél tároló" 00
6662 * 21	 04 04 A4 01 5C C5 C3 9E "Réz rakodó" 00
6663 * 22	 04 04 A4 01 5D C5 C3 9E "Réz tároló" 00
6664 * 23	 04 04 A4 01 5E C5 C3 9E "Hordó rakodó" 00
6665 * 34	 04 04 A4 01 5F C5 C3 9E "Hordó rakodó (alacsony)" 00
6666 * 24	 04 04 A4 01 60 C5 C3 9E "Hordó tároló" 00
6667 * 30	 04 04 A4 01 61 C5 C3 9E "Fûrészárú rakodó" 00
6668 * 31	 04 04 A4 01 62 C5 C3 9E "Fûrészárú tároló" 00
6669 * 23	 04 04 A4 01 63 C5 C3 9E "Papír rakodó" 00
6670 * 15	 04 04 A4 01 64 C5 C3 9E "Papír" 00
6671 * 23	 04 04 A4 01 65 C5 C3 9E "Autó tároló" 00

6672 * 22	 04 04 A4 01 66 C5 C3 9E "Iroda (régi)" 00
6673 * 14	 04 04 A4 01 67 C5 C3 9E "Iroda" 00
6674 * 23	 04 04 A4 01 68 C5 C3 9E "Iroda (modern)" 00
6675 * 32	 04 04 A4 01 69 C5 C3 9E "Iroda (alacsony, régi)" 00
6676 * 25	 04 04 A4 01 6A C5 C3 9E "Iroda (alacsony)" 00
6677 * 33	 04 04 A4 01 6B C5 C3 9E "Iroda (alacsony, modern)" 00
6678 * 23	 04 04 A4 01 6C C5 C3 9E "Vezetõi iroda" 00
6679 * 16	 04 04 A4 01 6D C5 C3 9E "Raktár" 00
6680 * 25	 04 04 A4 01 6E C5 C3 9E "Nyitott tároló" 00

6681 * 35	 04 04 A4 01 6F C5 C3 9E "Szállítmányozási iroda" 00
6682 * 28	 04 04 A4 01 70 C5 C3 9E "Nagy kereskedõház" 00
6683 * 27	 04 04 A4 01 71 C5 C3 9E "Kis kereskedõház" 00
6684 * 30	 04 04 A4 01 72 C5 C3 9E "Modern kereskedõház" 00
6685 * 24	 04 04 A4 01 73 C5 C3 9E "Raktárépület" 00
6686 * 31	 04 04 A4 01 74 C5 C3 9E "Tároló üzemeltetés" 00

6687 * 28	 04 04 A4 01 75 C5 C3 9E "Tároló tartályok" 00
6688 * 19	 04 04 A4 01 76 C5 C3 9E "Kocsiszín" 00

6689 * 26	 04 04 A4 01 77 C5 C3 9E "Raktár (túlsó)" 00
6690 * 27	 04 04 A4 01 78 C5 C3 9E "Raktár (innenső)" 00
6691 * 18	 04 04 A4 01 79 C5 C3 9E "Raktárak" 00
6692 * 32	 04 04 A4 01 7A C5 C3 9E "Raktár felüljáróval" 00
6693 * 35	 04 04 A4 01 7B C5 C3 9E "Felüljáró (magas peron)" 00

6694 * 24	 04 04 A4 01 82 C5 C3 9E "Alap vágányok" 00
6695 * 18	 04 04 A4 01 83 C5 C3 9E "Fellépõ" 00
6696 * 18	 04 04 A4 01 84 C5 C3 9E "Átjáró" 00
6697 * 26	 04 04 A4 01 85 C5 C3 9E "Vizsgáló torony" 00
6698 * 20	 04 04 A4 01 86 C5 C3 9E "Védõtetõ" 00
6699 * 22	 04 04 A4 01 87 C5 C3 9E "Kitérõ (É)" 00
6700 * 21	 04 04 A4 01 88 C5 C3 9E "Kitérõ (D)" 00
6701 * 32	 04 04 A4 01 89 C5 C3 9E "Közép ütközõk (É)" 00
6702 * 31	 04 04 A4 01 8A C5 C3 9E "Közép ütközõk (D)" 00
6703 * 24	 04 04 A4 01 8B C5 C3 9E "Ütközõk (É)" 00
6704 * 23	 04 04 A4 01 8C C5 C3 9E "Ütközõk (D)" 00
6705 * 33	 04 04 A4 01 8D C5 C3 9E "Középvágány nélkül" 00

// Station class names
6706 * 31	 04 04 A4 01 00 C4 C3 9E "ISR: Teher állomások" 00
6707 * 27	 04 04 A4 01 12 C4 C3 9E "ISR: Berendezések" 00
6708 * 26	 04 04 A4 01 36 C4 C3 9E "ISR: Nyersanyagok" 00
6709 * 34	 04 04 A4 01 4D C4 C3 9E "ISR: Feldolgozott termék" 00
6710 * 27	 04 04 A4 01 66 C4 C3 9E "ISR: Üzemeltetés" 00
6711 * 34	 04 04 A4 01 82 C4 C3 9E "ISR: Rendezõ pályaudvar" 00
// Station names
6712 * 29	 04 04 BA 01 00 C5 C3 9E "곡물 적재 역사" 00
6713 * 22	 04 04 BA 01 01 C5 C3 9E "가축 역사" 00
6714 * 25	 04 04 BA 01 02 C5 C3 9E "곡물 저장소" 00
6715 * 25	 04 04 BA 01 03 C5 C3 9E "광물 저장소" 00
6716 * 25	 04 04 BA 01 04 C5 C3 9E "광물 하차장" 00
6717 * 29	 04 04 BA 01 05 C5 C3 9E "석유 관련 시설" 00
6718 * 29	 04 04 BA 01 06 C5 C3 9E "목재 적재 역사" 00
6719 * 25	 04 04 BA 01 07 C5 C3 9E "귀금속 역사" 00
6720 * 25	 04 04 BA 01 08 C5 C3 9E "물펌프 역사" 00
6721 * 24	 04 04 BA 01 09 C5 C3 9E "상품 역사 A" 00
6722 * 24	 04 04 BA 01 0A C5 C3 9E "상품 역사 B" 00
6723 * 25	 04 04 BA 01 0E C5 C3 9E "제철소 역사" 00
6724 * 24	 04 04 BA 01 0C C5 C3 9E "상품 역사 C" 00
6725 * 25	 04 04 BA 01 0F C5 C3 9E "종이 적재역" 00
6726 * 25	 04 04 BA 01 10 C5 C3 9E "과일 적재역" 00
6727 * 25	 04 04 BA 01 11 C5 C3 9E "고무 적재역" 00
6728 * 34	 04 04 BA 01 0B C5 C3 9E "상품 적재역 (저상)" 00
6729 * 25	 04 04 BA 01 0D C5 C3 9E "중화물 역사" 00

6730 * 31	 04 04 BA 01 12 C5 C3 9E "빈 플랫폼 (저상)" 00
6731 * 31	 04 04 BA 01 13 C5 C3 9E "빈 플랫폼 (고상)" 00
6732 * 34	 04 04 BA 01 14 C5 C3 9E "단방향 승강장 (뒤)" 00
6733 * 34	 04 04 BA 01 15 C5 C3 9E "단방향 승강장 (앞)" 00
6734 * 21	 04 04 BA 01 16 C5 C3 9E "경사 (북)" 00
6735 * 21	 04 04 BA 01 17 C5 C3 9E "램프 (남)" 00
6736 * 31	 04 04 BA 01 18 C5 C3 9E "단방향 램프 (북)" 00
6737 * 31	 04 04 BA 01 19 C5 C3 9E "단방향 램프 (남)" 00
6738 * 27	 04 04 BA 01 1C C5 C3 9E "종단점 (저상)" 00
6739 * 27	 04 04 BA 01 1D C5 C3 9E "종단점 (고상)" 00
6740 * 24	 04 04 BA 01 1E C5 C3 9E "빈칸 (저상)" 00
6741 * 44	 04 04 BA 01 1F C5 C3 9E "울타리가 있는 빈칸 (저상)" 00
6742 * 24	 04 04 BA 01 20 C5 C3 9E "빈칸 (고상)" 00
6743 * 36	 04 04 BA 01 1A C5 C3 9E "램프 (북, 선로 없음)" 00
6744 * 36	 04 04 BA 01 1B C5 C3 9E "램프 (남, 선로 없음)" 00

6745 * 15	 04 04 BA 01 21 C5 C3 9E "도로" 00
6746 * 35	 04 04 BA 01 22 C5 C3 9E "울타리가 있는 도로" 00
6747 * 18	 04 04 BA 01 23 C5 C3 9E "건널목" 00
6748 * 25	 04 04 BA 01 24 C5 C3 9E "트럭 주차장" 00
6749 * 28	 04 04 BA 01 25 C5 C3 9E "도로 입구 (남)" 00
6750 * 28	 04 04 BA 01 26 C5 C3 9E "도로 입구 (북)" 00
6751 * 34	 04 04 BA 01 27 C5 C3 9E "자동차 진입부 (북)" 00
6752 * 34	 04 04 BA 01 28 C5 C3 9E "자동차 진입부 (남)" 00

6753 * 18	 04 04 BA 01 29 C5 C3 9E "물탱크" 00
6754 * 25	 04 04 BA 01 2A C5 C3 9E "타워 크레인" 00
6755 * 25	 04 04 BA 01 2B C5 C3 9E "선상 크레인" 00
6756 * 25	 04 04 BA 01 2C C5 C3 9E "천장 크레인" 00

6757 * 38	 04 04 BA 01 2D C5 C3 9E "고가 이동 크레인 (북)" 00
6758 * 53	 04 04 BA 01 2E C5 C3 9E "고가 이동 크레인 (북, 선로 없음)" 00
6759 * 38	 04 04 BA 01 2F C5 C3 9E "고가 이동 크레인 (남)" 00
6760 * 53	 04 04 BA 01 30 C5 C3 9E "고가 이동 크레인 (남, 선로 없음)" 00
6761 * 46	 04 04 BA 01 31 C5 C3 9E "고가 이동 크레인 (북, 구식)" 00
6762 * 61	 04 04 BA 01 32 C5 C3 9E "고가 이동 크레인 (북, 선로 없음, 구식)" 00
6763 * 46	 04 04 BA 01 33 C5 C3 9E "고가 이동 크레인 (남, 구식)" 00
6764 * 61	 04 04 BA 01 34 C5 C3 9E "고가 이동 크레인 (남, 선로 없음, 구식)" 00
6765 * 28	 04 04 BA 01 35 C5 C3 9E "크롤러 크레인" 00

6766 * 22	 04 04 BA 01 36 C5 C3 9E "농장 건물" 00
6767 * 32	 04 04 BA 01 37 C5 C3 9E "소규모 농장 건물" 00
6768 * 22	 04 04 BA 01 38 C5 C3 9E "농장 시설" 00
6769 * 22	 04 04 BA 01 39 C5 C3 9E "곡물 탱크" 00
6770 * 22	 04 04 BA 01 3A C5 C3 9E "돼지 우리" 00
6771 * 19	 04 04 BA 01 3B C5 C3 9E "소 우리" 00
6772 * 22	 04 04 BA 01 3C C5 C3 9E "우유 탱크" 00
6773 * 15	 04 04 BA 01 3D C5 C3 9E "축사" 00
6774 * 25	 04 04 BA 01 3E C5 C3 9E "과일 승강장" 00
6775 * 15	 04 04 BA 01 3F C5 C3 9E "과일" 00

6776 * 25	 04 04 BA 01 40 C5 C3 9E "광물 승강장" 00
6777 * 29	 04 04 BA 01 41 C5 C3 9E "열차 적재 슈트" 00
6778 * 34	 04 04 BA 01 42 C5 C3 9E "컨베이어 벨트 (북)" 00
6779 * 34	 04 04 BA 01 43 C5 C3 9E "컨베이어 벨트 (남)" 00
6780 * 22	 04 04 BA 01 44 C5 C3 9E "광물 더미" 00
6781 * 22	 04 04 BA 01 45 C5 C3 9E "광물 트럭" 00
6782 * 27	 04 04 BA 01 46 C5 C3 9E "불도저 (광물)" 00
6783 * 41	 04 04 BA 01 47 C5 C3 9E "전면 적재 불도저 (광물)" 00

6784 * 29	 04 04 BA 01 48 C5 C3 9E "석유 저장 탱크" 00

6785 * 25	 04 04 BA 01 49 C5 C3 9E "목재 승강장" 00
6786 * 22	 04 04 BA 01 4A C5 C3 9E "목재 더미" 00
6787 * 25	 04 04 BA 01 4B C5 C3 9E "목재 적재기" 00
6788 * 25	 04 04 BA 01 4C C5 C3 9E "목재 적재기" 00

6789 * 27	 04 04 BA 01 7E C5 C3 9E "귀금속 창고 A" 00
6790 * 27	 04 04 BA 01 7F C5 C3 9E "귀금속 창고 B" 00
6791 * 27	 04 04 BA 01 80 C5 C3 9E "귀금속 창고 C" 00
6792 * 24	 04 04 BA 01 7C C5 C3 9E "육교 (저상)" 00
6793 * 28	 04 04 BA 01 81 C5 C3 9E "귀금속 주차장" 00
6794 * 31	 04 04 BA 01 7D C5 C3 9E "육교 (선로 없음)" 00

6795 * 32	 04 04 BA 01 4D C5 C3 9E "일반 화물 승강장" 00
6796 * 41	 04 04 BA 01 4E C5 C3 9E "일반 화물 승강장 (저상)" 00
6797 * 22	 04 04 BA 01 4F C5 C3 9E "일반 화물" 00
6798 * 27	 04 04 BA 01 50 C5 C3 9E "지게차 (상자)" 00
6799 * 28	 04 04 BA 01 51 C5 C3 9E "지게차 승강장" 00
6800 * 37	 04 04 BA 01 52 C5 C3 9E "지게차 승강장 (저상)" 00
6801 * 38	 04 04 BA 01 53 C5 C3 9E "컨테이너 적재 승강장" 00
6802 * 40	 04 04 BA 01 54 C5 C3 9E "컨테이너 승강장 (저상)" 00
6803 * 34	 04 04 BA 01 55 C5 C3 9E "크레인과 컨테이너" 00
6804 * 21	 04 04 BA 01 56 C5 C3 9E "컨테이너" 00
6805 * 33	 04 04 BA 01 57 C5 C3 9E "지게차 (컨테이너)" 00
6806 * 31	 04 04 BA 01 58 C5 C3 9E "컨테이너 적재기" 00
6807 * 25	 04 04 BA 01 59 C5 C3 9E "리치 스태커" 00
6808 * 22	 04 04 BA 01 5A C5 C3 9E "철 승강장" 00
6809 * 12	 04 04 BA 01 5B C5 C3 9E "철" 00
6810 * 25	 04 04 BA 01 5C C5 C3 9E "구리 승강장" 00
6811 * 15	 04 04 BA 01 5D C5 C3 9E "구리" 00
6812 * 22	 04 04 BA 01 5E C5 C3 9E "통 승강장" 00
6813 * 31	 04 04 BA 01 5F C5 C3 9E "통 승강장 (저상)" 00
6814 * 12	 04 04 BA 01 60 C5 C3 9E "통" 00
6815 * 25	 04 04 BA 01 61 C5 C3 9E "목재 승강장" 00
6816 * 15	 04 04 BA 01 62 C5 C3 9E "목재" 00
6817 * 25	 04 04 BA 01 63 C5 C3 9E "종이 승강장" 00
6818 * 15	 04 04 BA 01 64 C5 C3 9E "종이" 00
6819 * 18	 04 04 BA 01 65 C5 C3 9E "자동차" 00

6820 * 27	 04 04 BA 01 66 C5 C3 9E "사무실 (구식)" 00
6821 * 18	 04 04 BA 01 67 C5 C3 9E "사무실" 00
6822 * 30	 04 04 BA 01 68 C5 C3 9E "사무실 (현대식)" 00
6823 * 35	 04 04 BA 01 69 C5 C3 9E "사무실 (저상, 구식)" 00
6824 * 27	 04 04 BA 01 6A C5 C3 9E "사무실 (저상)" 00
6825 * 38	 04 04 BA 01 6B C5 C3 9E "사무실 (저상, 현대식)" 00
6826 * 22	 04 04 BA 01 6C C5 C3 9E "주 사무실" 00
6827 * 15	 04 04 BA 01 6D C5 C3 9E "창고" 00
6828 * 31	 04 04 BA 01 6E C5 C3 9E "개방형 보관창고" 00

6829 * 32	 04 04 BA 01 6F C5 C3 9E "선적 담당 사무실" 00
6830 * 19	 04 04 BA 01 70 C5 C3 9E "큰 창고" 00
6831 * 22	 04 04 BA 01 71 C5 C3 9E "작은 창고" 00
6832 * 28	 04 04 BA 01 72 C5 C3 9E "현대적인 창고" 00
6833 * 22	 04 04 BA 01 73 C5 C3 9E "벽돌 창고" 00
6834 * 22	 04 04 BA 01 74 C5 C3 9E "저장 시설" 00

6835 * 22	 04 04 BA 01 75 C5 C3 9E "저장 탱크" 00
6836 * 18	 04 04 BA 01 76 C5 C3 9E "기관고" 00

6837 * 35	 04 04 BA 01 77 C5 C3 9E "화물 역사 건물 (뒤)" 00
6838 * 35	 04 04 BA 01 78 C5 C3 9E "화물 역사 건물 (앞)" 00
6839 * 29	 04 04 BA 01 79 C5 C3 9E "화물 역사 건물" 00
6840 * 46	 04 04 BA 01 7A C5 C3 9E "육교가 있는 화물 역사 건물" 00
6841 * 24	 04 04 BA 01 7B C5 C3 9E "육교 (고상)" 00

6842 * 22	 04 04 BA 01 82 C5 C3 9E "기본 트랙" 00
6843 * 28	 04 04 BA 01 83 C5 C3 9E "승무원용 계단" 00
6844 * 18	 04 04 BA 01 84 C5 C3 9E "건널목" 00
6845 * 15	 04 04 BA 01 85 C5 C3 9E "타워" 00
6846 * 18	 04 04 BA 01 86 C5 C3 9E "대피소" 00
6847 * 24	 04 04 BA 01 87 C5 C3 9E "분기기 (북)" 00
6848 * 24	 04 04 BA 01 88 C5 C3 9E "분기기 (남)" 00
6849 * 31	 04 04 BA 01 89 C5 C3 9E "중간 종단점 (북)" 00
6850 * 31	 04 04 BA 01 8A C5 C3 9E "중간 종단점 (남)" 00
6851 * 24	 04 04 BA 01 8B C5 C3 9E "종단점 (북)" 00
6852 * 24	 04 04 BA 01 8C C5 C3 9E "종단점 (남)" 00
6853 * 39	 04 04 BA 01 8D C5 C3 9E "중간 선로가 없는 트랙" 00

// Station class names
6854 * 17	 04 04 BA 01 00 C4 C3 9E "ISR: 역" 00
6855 * 24	 04 04 BA 01 12 C4 C3 9E "ISR: 역 조각" 00
6856 * 23	 04 04 BA 01 36 C4 C3 9E "ISR: 원자재" 00
6857 * 23	 04 04 BA 01 4D C4 C3 9E "ISR: 생산품" 00
6858 * 23	 04 04 BA 01 66 C4 C3 9E "ISR: 시설물" 00
6859 * 23	 04 04 BA 01 82 C4 C3 9E "ISR: 조차장" 00
// Station names
6860 * 24	 04 04 D6 01 00 C5 C3 9E "谷物装载站" 00
6861 * 18	 04 04 D6 01 01 C5 C3 9E "牲畜站" 00
6862 * 18	 04 04 D6 01 02 C5 C3 9E "谷物仓" 00
6863 * 18	 04 04 D6 01 03 C5 C3 9E "矿物仓" 00
6864 * 24	 04 04 D6 01 04 C5 C3 9E "矿物卸载器" 00
6865 * 21	 04 04 D6 01 05 C5 C3 9E "原油设施" 00
6866 * 24	 04 04 D6 01 06 C5 C3 9E "原木装载站" 00
6867 * 33	 04 04 D6 01 07 C5 C3 9E "高度设防仓库车站" 00
6868 * 18	 04 04 D6 01 08 C5 C3 9E "抽水站" 00
6869 * 34	 04 04 D6 01 09 C5 C3 9E "商品货物站 样式一" 00
6870 * 34	 04 04 D6 01 0A C5 C3 9E "商品货物站 样式二" 00
6871 * 18	 04 04 D6 01 0E C5 C3 9E "钢厂站" 00
6872 * 24	 04 04 D6 01 0C C5 C3 9E "一般货运站" 00
6873 * 24	 04 04 D6 01 0F C5 C3 9E "纸张装载站" 00
6874 * 24	 04 04 D6 01 10 C5 C3 9E "水果装载站" 00
6875 * 24	 04 04 D6 01 11 C5 C3 9E "橡胶装载站" 00
6876 * 36	 04 04 D6 01 0B C5 C3 9E "商品货物站 (无站台)" 00
6877 * 27	 04 04 D6 01 0D C5 C3 9E "重型货运车站" 00

6878 * 24	 04 04 D6 01 12 C5 C3 9E "空站台 (矮)" 00
6879 * 24	 04 04 D6 01 13 C5 C3 9E "空站台 (高)" 00
6880 * 27	 04 04 D6 01 14 C5 C3 9E "单面月台 (后)" 00
6881 * 27	 04 04 D6 01 15 C5 C3 9E "单面站台 (前)" 00
6882 * 21	 04 04 D6 01 16 C5 C3 9E "斜坡 (北)" 00
6883 * 21	 04 04 D6 01 17 C5 C3 9E "斜坡 (南)" 00
6884 * 30	 04 04 D6 01 18 C5 C3 9E "单面斜坡 (向北)" 00
6885 * 30	 04 04 D6 01 19 C5 C3 9E "单面斜坡 (向南)" 00
6886 * 24	 04 04 D6 01 1C C5 C3 9E "缓冲器 (矮)" 00
6887 * 24	 04 04 D6 01 1D C5 C3 9E "缓冲器 (高)" 00
6888 * 24	 04 04 D6 01 1E C5 C3 9E "空地块 (矮)" 00
6889 * 36	 04 04 D6 01 1F C5 C3 9E "有围栏的空地块 (矮)" 00
6890 * 24	 04 04 D6 01 20 C5 C3 9E "空地块 (高)" 00
6891 * 36	 04 04 D6 01 1A C5 C3 9E "斜坡 (向北、无铁轨)" 00
6892 * 36	 04 04 D6 01 1B C5 C3 9E "斜坡 (向南、无铁轨)" 00

6893 * 15	 04 04 D6 01 21 C5 C3 9E "道路" 00
6894 * 36	 04 04 D6 01 22 C5 C3 9E "旁边设有围栏的道路" 00
6895 * 18	 04 04 D6 01 23 C5 C3 9E "平交道" 00
6896 * 24	 04 04 D6 01 24 C5 C3 9E "货车停车场" 00
6897 * 30	 04 04 D6 01 25 C5 C3 9E "道路入口 (向南)" 00
6898 * 30	 04 04 D6 01 26 C5 C3 9E "道路入口 (向北)" 00
6899 * 30	 04 04 D6 01 27 C5 C3 9E "行车斜道 (向北)" 00
6900 * 30	 04 04 D6 01 28 C5 C3 9E "行车斜道 (向南)" 00

6901 * 15	 04 04 D6 01 29 C5 C3 9E "水塔" 00
6902 * 15	 04 04 D6 01 2A C5 C3 9E "塔吊" 00
6903 * 18	 04 04 D6 01 2B C5 C3 9E "龙门吊" 00
6904 * 15	 04 04 D6 01 2C C5 C3 9E "桥吊" 00

6905 * 33	 04 04 D6 01 2D C5 C3 9E "轨道龙门吊 (向北)" 00
6906 * 45	 04 04 D6 01 2E C5 C3 9E "轨道龙门吊 (向北，无铁轨)" 00
6907 * 33	 04 04 D6 01 2F C5 C3 9E "轨道龙门吊 (向南)" 00
6908 * 45	 04 04 D6 01 30 C5 C3 9E "轨道龙门吊 (向南，无铁轨)" 00
6909 * 42	 04 04 D6 01 31 C5 C3 9E "轨道龙门吊 (向北，旧式)" 00
6910 * 54	 04 04 D6 01 32 C5 C3 9E "轨道龙门吊 (向北，无铁轨，旧式)" 00
6911 * 42	 04 04 D6 01 33 C5 C3 9E "轨道龙门吊 (向南，旧式)" 00
6912 * 54	 04 04 D6 01 34 C5 C3 9E "轨道龙门吊 (向南，无铁轨，旧式)" 00
6913 * 18	 04 04 D6 01 35 C5 C3 9E "履带吊" 00

6914 * 21	 04 04 D6 01 36 C5 C3 9E "农场建筑" 00
6915 * 24	 04 04 D6 01 37 C5 C3 9E "小农场建筑" 00
6916 * 21	 04 04 D6 01 38 C5 C3 9E "农场设施" 00
6917 * 21	 04 04 D6 01 39 C5 C3 9E "矮谷物仓" 00
6918 * 21	 04 04 D6 01 3A C5 C3 9E "生猪围栏" 00
6919 * 15	 04 04 D6 01 3B C5 C3 9E "牛栏" 00
6920 * 18	 04 04 D6 01 3C C5 C3 9E "贮奶罐" 00
6921 * 15	 04 04 D6 01 3D C5 C3 9E "牛棚" 00
6922 * 21	 04 04 D6 01 3E C5 C3 9E "水果月台" 00
6923 * 15	 04 04 D6 01 3F C5 C3 9E "水果" 00

6924 * 21	 04 04 D6 01 40 C5 C3 9E "矿物站台" 00
6925 * 24	 04 04 D6 01 41 C5 C3 9E "货物装载槽" 00
6926 * 27	 04 04 D6 01 42 C5 C3 9E "传送带 (向北)" 00
6927 * 27	 04 04 D6 01 43 C5 C3 9E "传送带 (向南)" 00
6928 * 18	 04 04 D6 01 44 C5 C3 9E "矿物堆" 00
6929 * 21	 04 04 D6 01 45 C5 C3 9E "矿用卡车" 00
6930 * 27	 04 04 D6 01 46 C5 C3 9E "推土机 (矿物)" 00
6931 * 27	 04 04 D6 01 47 C5 C3 9E "挖掘机 (矿物)" 00

6932 * 18	 04 04 D6 01 48 C5 C3 9E "储油罐" 00

6933 * 21	 04 04 D6 01 49 C5 C3 9E "原木站台" 00
6934 * 18	 04 04 D6 01 4A C5 C3 9E "原木堆" 00
6935 * 24	 04 04 D6 01 4B C5 C3 9E "原木装载机" 00
6936 * 24	 04 04 D6 01 4C C5 C3 9E "原木堆垛机" 00

6937 * 37	 04 04 D6 01 7E C5 C3 9E "高度设防仓库 样式甲" 00
6938 * 37	 04 04 D6 01 7F C5 C3 9E "高度设防仓库 样式乙" 00
6939 * 37	 04 04 D6 01 80 C5 C3 9E "高度设防仓库 样式丙" 00
6940 * 42	 04 04 D6 01 7C C5 C3 9E "高架货物输送带 (矮站台)" 00
6941 * 37	 04 04 D6 01 81 C5 C3 9E "高度设防仓库 停车场" 00
6942 * 48	 04 04 D6 01 7D C5 C3 9E "高架货物输送带 (底下无铁轨)" 00

6943 * 27	 04 04 D6 01 4D C5 C3 9E "普通货物站台" 00
6944 * 33	 04 04 D6 01 4E C5 C3 9E "普通货物站台 (低)" 00
6945 * 21	 04 04 D6 01 4F C5 C3 9E "普通货物" 00
6946 * 27	 04 04 D6 01 50 C5 C3 9E "叉车 (板条箱)" 00
6947 * 21	 04 04 D6 01 51 C5 C3 9E "纸张月台" 00
6948 * 15	 04 04 D6 01 52 C5 C3 9E "纸张" 00
6949 * 21	 04 04 D6 01 53 C5 C3 9E "叉车月台" 00
6950 * 30	 04 04 D6 01 54 C5 C3 9E "集装箱站台 (低)" 00
6951 * 24	 04 04 D6 01 55 C5 C3 9E "集装箱吊机" 00
6952 * 18	 04 04 D6 01 56 C5 C3 9E "集装箱" 00
6953 * 27	 04 04 D6 01 57 C5 C3 9E "叉车 (集装箱)" 00
6954 * 27	 04 04 D6 01 58 C5 C3 9E "集装箱堆垛机" 00
6955 * 36	 04 04 D6 01 59 C5 C3 9E "长臂堆垛机 (集装箱)" 00
6956 * 21	 04 04 D6 01 5A C5 C3 9E "钢材站台" 00
6957 * 15	 04 04 D6 01 5B C5 C3 9E "钢材" 00
6958 * 21	 04 04 D6 01 5C C5 C3 9E "铜料站台" 00
6959 * 15	 04 04 D6 01 5D C5 C3 9E "铜料" 00
6960 * 21	 04 04 D6 01 5E C5 C3 9E "罐桶站台" 00
6961 * 27	 04 04 D6 01 5F C5 C3 9E "罐桶站台 (低)" 00
6962 * 15	 04 04 D6 01 60 C5 C3 9E "罐桶" 00
6963 * 24	 04 04 D6 01 61 C5 C3 9E "木制品站台" 00
6964 * 18	 04 04 D6 01 62 C5 C3 9E "木制品" 00
6965 * 21	 04 04 D6 01 63 C5 C3 9E "纸张站台" 00
6966 * 15	 04 04 D6 01 64 C5 C3 9E "木料" 00
6967 * 15	 04 04 D6 01 65 C5 C3 9E "汽车" 00

6968 * 27	 04 04 D6 01 66 C5 C3 9E "办公室 (旧式)" 00
6969 * 18	 04 04 D6 01 67 C5 C3 9E "办公室" 00
6970 * 27	 04 04 D6 01 68 C5 C3 9E "办公室 (现代)" 00
6971 * 36	 04 04 D6 01 69 C5 C3 9E "旧式办公室 (无站台)" 00
6972 * 30	 04 04 D6 01 6A C5 C3 9E "办公室 (无站台)" 00
6973 * 36	 04 04 D6 01 6B C5 C3 9E "新式办公室 (无站台)" 00
6974 * 15	 04 04 D6 01 6C C5 C3 9E "总部" 00
6975 * 15	 04 04 D6 01 6D C5 C3 9E "棚屋" 00
6976 * 24	 04 04 D6 01 6E C5 C3 9E "开放式仓库" 00

6977 * 24	 04 04 D6 01 6F C5 C3 9E "运输事务所" 00
6978 * 18	 04 04 D6 01 70 C5 C3 9E "大货仓" 00
6979 * 18	 04 04 D6 01 71 C5 C3 9E "小货仓" 00
6980 * 21	 04 04 D6 01 72 C5 C3 9E "现代货仓" 00
6981 * 21	 04 04 D6 01 73 C5 C3 9E "砖砌货仓" 00
6982 * 21	 04 04 D6 01 74 C5 C3 9E "储存设施" 00

6983 * 18	 04 04 D6 01 75 C5 C3 9E "储存罐" 00
6984 * 18	 04 04 D6 01 76 C5 C3 9E "列车棚" 00

6985 * 30	 04 04 D6 01 77 C5 C3 9E "仓库 (铁轨后方)" 00
6986 * 30	 04 04 D6 01 78 C5 C3 9E "仓库 (铁轨前方)" 00
6987 * 30	 04 04 D6 01 79 C5 C3 9E "仓库 (铁轨两侧)" 00
6988 * 48	 04 04 D6 01 7A C5 C3 9E "以货物输送带连接的两座仓库" 00
6989 * 42	 04 04 D6 01 7B C5 C3 9E "高架货物输送带 (高站台)" 00

6990 * 21	 04 04 D6 01 82 C5 C3 9E "基础路轨" 00
6991 * 18	 04 04 D6 01 83 C5 C3 9E "小站台" 00
6992 * 18	 04 04 D6 01 84 C5 C3 9E "过路处" 00
6993 * 12	 04 04 D6 01 85 C5 C3 9E "塔" 00
6994 * 15	 04 04 D6 01 86 C5 C3 9E "车棚" 00
6995 * 30	 04 04 D6 01 87 C5 C3 9E "铁轨道岔 (向北)" 00
6996 * 30	 04 04 D6 01 88 C5 C3 9E "铁轨道岔 (向南)" 00
6997 * 36	 04 04 D6 01 89 C5 C3 9E "机走线缓冲器 (向北)" 00
6998 * 36	 04 04 D6 01 8A C5 C3 9E "机走线缓冲器 (向南)" 00
6999 * 27	 04 04 D6 01 8B C5 C3 9E "缓冲器 (向北)" 00
7000 * 27	 04 04 D6 01 8C C5 C3 9E "缓冲器 (向南)" 00
7001 * 27	 04 04 D6 01 8D C5 C3 9E "无机走线铁轨" 00

// Station class names
7002 * 20	 04 04 D6 01 00 C4 C3 9E "ISR: 站台" 00
7003 * 29	 04 04 D6 01 12 C4 C3 9E "ISR: 基建及器械" 00
7004 * 20	 04 04 D6 01 36 C4 C3 9E "ISR: 原料" 00
7005 * 20	 04 04 D6 01 4D C4 C3 9E "ISR: 成品" 00
7006 * 20	 04 04 D6 01 66 C4 C3 9E "ISR: 设施" 00
7007 * 23	 04 04 D6 01 82 C4 C3 9E "ISR: 编组场" 00
// Station names
7008 * 25	 04 04 93 01 00 C5 C3 9E "Stèisean gràin" 00
7009 * 28	 04 04 93 01 01 C5 C3 9E "Stèisean sprèidhe" 00
7010 * 24	 04 04 93 01 02 C5 C3 9E "Saidhleo gràin" 00
7011 * 27	 04 04 93 01 03 C5 C3 9E "Saidhleo mèinneir" 00
7012 * 38	 04 04 93 01 04 C5 C3 9E "Inneal dì-luchdadh mèinneir" 00
7013 * 22	 04 04 93 01 05 C5 C3 9E "Goireasan ola" 00
7014 * 25	 04 04 93 01 06 C5 C3 9E "Stèisean fiodha" 00
7015 * 29	 04 04 93 01 07 C5 C3 9E "Stèisean tèarainte" 00
7016 * 30	 04 04 93 01 08 C5 C3 9E "Stèisean pumpa uisge" 00
7017 * 28	 04 04 93 01 09 C5 C3 9E "Stèisean bathair A" 00
7018 * 28	 04 04 93 01 0A C5 C3 9E "Stèisean bathair B" 00
7019 * 38	 04 04 93 01 0E C5 C3 9E "Stèisean muillinn-stàilinne" 00
7020 * 24	 04 04 93 01 0C C5 C3 9E "Stèisean luchd" 00
7021 * 27	 04 04 93 01 0F C5 C3 9E "Stèisean pàipeir" 00
7022 * 26	 04 04 93 01 10 C5 C3 9E "Stèisean mheasan" 00
7023 * 25	 04 04 93 01 11 C5 C3 9E "Stèisean rubair" 00
7024 * 35	 04 04 93 01 0B C5 C3 9E "Stèisean bathair (ìosal)" 00
7025 * 30	 04 04 93 01 0D C5 C3 9E "Stèisean luchd truim" 00

7026 * 32	 04 04 93 01 12 C5 C3 9E "Clàran falamh (ìosal)" 00
7027 * 30	 04 04 93 01 13 C5 C3 9E "Clàran falamh (àrd)" 00
7028 * 38	 04 04 93 01 14 C5 C3 9E "Clàran aon taoibh (cùlaibh)" 00
7029 * 38	 04 04 93 01 15 C5 C3 9E "Clàran aon taoibh (beulaibh)" 00
7030 * 18	 04 04 93 01 16 C5 C3 9E "Rampa (T)" 00
7031 * 18	 04 04 93 01 17 C5 C3 9E "Rampa (D)" 00
7032 * 29	 04 04 93 01 18 C5 C3 9E "Rampa aon taoibh (T)" 00
7033 * 29	 04 04 93 01 19 C5 C3 9E "Rampa aon taoibh (D)" 00
7034 * 27	 04 04 93 01 1C C5 C3 9E "Bufairean (ìosal)" 00
7035 * 25	 04 04 93 01 1D C5 C3 9E "Bufairean (àrd)" 00
7036 * 32	 04 04 93 01 1E C5 C3 9E "Leacag fhalamh (ìosal)" 00
7037 * 42	 04 04 93 01 1F C5 C3 9E "Leacag fhalamh le feansa (ìosal)" 00
7038 * 30	 04 04 93 01 20 C5 C3 9E "Leacag fhalamh (àrd)" 00
7039 * 30	 04 04 93 01 1A C5 C3 9E "Rampa (T, gun slighe)" 00
7040 * 30	 04 04 93 01 1B C5 C3 9E "Rampa (D, gun slighe)" 00

7041 * 15	 04 04 93 01 21 C5 C3 9E "Rathad" 00
7042 * 25	 04 04 93 01 22 C5 C3 9E "Rathad le feansa" 00
7043 * 22	 04 04 93 01 23 C5 C3 9E "Staran rèile" 00
7044 * 37	 04 04 93 01 24 C5 C3 9E "Ionad-pàrcaidh nan làraidh" 00
7045 * 30	 04 04 93 01 25 C5 C3 9E "Inntreadh rathaid (D)" 00
7046 * 30	 04 04 93 01 26 C5 C3 9E "Inntreadh rathaid (T)" 00
7047 * 42	 04 04 93 01 27 C5 C3 9E "Inntrigeadh charbadan-rathaid (T)" 00
7048 * 42	 04 04 93 01 28 C5 C3 9E "Inntrigeadh charbadan-rathaid (D)" 00

7049 * 19	 04 04 93 01 29 C5 C3 9E "Tùr uisge" 00
7050 * 27	 04 04 93 01 2A C5 C3 9E "Crann-togail tùir" 00
7051 * 34	 04 04 93 01 2B C5 C3 9E "Crann-togail air rèilean" 00
7052 * 25	 04 04 93 01 2C C5 C3 9E "Os-chrann-togail" 00

7053 * 34	 04 04 93 01 2D C5 C3 9E "Crann-togail sorchain (T)" 00
7054 * 46	 04 04 93 01 2E C5 C3 9E "Crann-togail sorchain (T, gun rèile)" 00
7055 * 34	 04 04 93 01 2F C5 C3 9E "Crann-togail sorchain (D)" 00
7056 * 46	 04 04 93 01 30 C5 C3 9E "Crann-togail sorchain (D, gun rèile)" 00
7057 * 47	 04 04 93 01 31 C5 C3 9E "Crann-togail sorchain (T, clasaigeach)" 00
7058 * 59	 04 04 93 01 32 C5 C3 9E "Crann-togail sorchain (T, gun rèile, clasaigeach)" 00
7059 * 47	 04 04 93 01 33 C5 C3 9E "Crann-togail sorchain (D, clasaigeach)" 00
7060 * 59	 04 04 93 01 34 C5 C3 9E "Crann-togail sorchain (D, gun rèile, clasaigeach)" 00
7061 * 32	 04 04 93 01 35 C5 C3 9E "Crann-togail cràlaiche" 00

7062 * 28	 04 04 93 01 36 C5 C3 9E "Togalach tuathanais" 00
7063 * 33	 04 04 93 01 37 C5 C3 9E "Togalach tuathanais beag" 00
7064 * 29	 04 04 93 01 38 C5 C3 9E "Goireasan tuathanais" 00
7065 * 23	 04 04 93 01 39 C5 C3 9E "Stòras gràin" 00
7066 * 22	 04 04 93 01 3A C5 C3 9E "Clobhsa muice" 00
7067 * 26	 04 04 93 01 3B C5 C3 9E "Clobhsa sprèidhe" 00
7068 * 27	 04 04 93 01 3C C5 C3 9E "Tancaichean-bainne" 00
7069 * 20	 04 04 93 01 3D C5 C3 9E "Bàithealan" 00
7070 * 22	 04 04 93 01 3E C5 C3 9E "Clàr mheasan" 00
7071 * 15	 04 04 93 01 3F C5 C3 9E "Measan" 00

7072 * 26	 04 04 93 01 40 C5 C3 9E "Clàran mèinneir" 00
7073 * 33	 04 04 93 01 41 C5 C3 9E "Spùtan luchdadh trèana" 00
7074 * 27	 04 04 93 01 42 C5 C3 9E "Crios-giùlain (T)" 00
7075 * 27	 04 04 93 01 43 C5 C3 9E "Crios-giùlain (D)" 00
7076 * 23	 04 04 93 01 44 C5 C3 9E "Torr mèinneir" 00
7077 * 24	 04 04 93 01 45 C5 C3 9E "Truca mèinneir" 00
7078 * 30	 04 04 93 01 46 C5 C3 9E "Bulldozer (mèinneir)" 00
7079 * 30	 04 04 93 01 47 C5 C3 9E "Cladhaire (mèinneir)" 00

7080 * 24	 04 04 93 01 48 C5 C3 9E "Tancaichean ola" 00

7081 * 23	 04 04 93 01 49 C5 C3 9E "Clàran fiodha" 00
7082 * 20	 04 04 93 01 4A C5 C3 9E "Torr fiodha" 00
7083 * 27	 04 04 93 01 4B C5 C3 9E "Luchdaichear saile" 00
7084 * 32	 04 04 93 01 4C C5 C3 9E "Inneal-cruachaidh saile" 00

7085 * 27	 04 04 93 01 7E C5 C3 9E "Seada tèarainte A" 00
7086 * 27	 04 04 93 01 7F C5 C3 9E "Seada tèarainte B" 00
7087 * 27	 04 04 93 01 80 C5 C3 9E "Seada tèarainte C" 00
7088 * 35	 04 04 93 01 7C C5 C3 9E "Os-rathad (clàran ìosal)" 00
7089 * 28	 04 04 93 01 81 C5 C3 9E "Pàrcadh tèarainte" 00
7090 * 31	 04 04 93 01 7D C5 C3 9E "Os-rathad (gun rèile)" 00

7091 * 34	 04 04 93 01 4D C5 C3 9E "Clàran carago coitcheann" 00
7092 * 43	 04 04 93 01 4E C5 C3 9E "Clàran carago coitcheann (ìosal)" 00
7093 * 26	 04 04 93 01 4F C5 C3 9E "Carago coitcheann" 00
7094 * 36	 04 04 93 01 50 C5 C3 9E "Lioft-fuirc (crèataichean)" 00
7095 * 26	 04 04 93 01 51 C5 C3 9E "Clàr lioft-fuirc" 00
7096 * 35	 04 04 93 01 52 C5 C3 9E "Clàr lioft-fuirc (ìosal)" 00
7097 * 44	 04 04 93 01 53 C5 C3 9E "Clàran luchdadh bhogsaichean-luchd" 00
7098 * 53	 04 04 93 01 54 C5 C3 9E "Clàran luchdadh bhogsaichean-luchd (ìosal)" 00
7099 * 42	 04 04 93 01 55 C5 C3 9E "Bogsaichean-luchd le crann-togail" 00
7100 * 26	 04 04 93 01 56 C5 C3 9E "Bogsaichean-luchd" 00
7101 * 40	 04 04 93 01 57 C5 C3 9E "Lioft-fuirc (bogsaichean-luchd)" 00
7102 * 45	 04 04 93 01 58 C5 C3 9E "Inneal-cruachaidh bhogsaichean-luchd" 00
7103 * 34	 04 04 93 01 59 C5 C3 9E "Inneal-cruachaidh sìnidh" 00
7104 * 27	 04 04 93 01 5A C5 C3 9E "Clàran stàilinne" 00
7105 * 18	 04 04 93 01 5B C5 C3 9E "Stàilinn" 00
7106 * 23	 04 04 93 01 5C C5 C3 9E "Clàran copair" 00
7107 * 15	 04 04 93 01 5D C5 C3 9E "Copair" 00
7108 * 28	 04 04 93 01 5E C5 C3 9E "Clàran bharaillean" 00
7109 * 37	 04 04 93 01 5F C5 C3 9E "Clàran bharaillean (ìosal)" 00
7110 * 19	 04 04 93 01 60 C5 C3 9E "Baraillean" 00
7111 * 23	 04 04 93 01 61 C5 C3 9E "Clàran fiodha" 00
7112 * 14	 04 04 93 01 62 C5 C3 9E "Fiodh" 00
7113 * 25	 04 04 93 01 63 C5 C3 9E "Clàran pàipeir" 00
7114 * 17	 04 04 93 01 64 C5 C3 9E "Pàipear" 00
7115 * 20	 04 04 93 01 65 C5 C3 9E "Càraichean" 00

7116 * 28	 04 04 93 01 66 C5 C3 9E "Oifis (clasaigeach)" 00
7117 * 14	 04 04 93 01 67 C5 C3 9E "Oifis" 00
7118 * 28	 04 04 93 01 68 C5 C3 9E "Oifis (ùr-nòsach)" 00
7119 * 36	 04 04 93 01 69 C5 C3 9E "Oifis (ìosal, clasaigeach)" 00
7120 * 23	 04 04 93 01 6A C5 C3 9E "Oifis (ìosal)" 00
7121 * 36	 04 04 93 01 6B C5 C3 9E "Oifis (ìosal, ùr-nòsach)" 00
7122 * 22	 04 04 93 01 6C C5 C3 9E "Prìomh oifis" 00
7123 * 20	 04 04 93 01 6D C5 C3 9E "Seadaichean" 00
7124 * 33	 04 04 93 01 6E C5 C3 9E "Seada-stòrais fosgailte" 00

7125 * 23	 04 04 93 01 6F C5 C3 9E "Oifis loingeis" 00
7126 * 24	 04 04 93 01 70 C5 C3 9E "Batharnach mòr" 00
7127 * 24	 04 04 93 01 71 C5 C3 9E "Batharnach beag" 00
7128 * 31	 04 04 93 01 72 C5 C3 9E "Batharnach ùr-nòsach" 00
7129 * 26	 04 04 93 01 73 C5 C3 9E "Batharnach breige" 00
7130 * 25	 04 04 93 01 74 C5 C3 9E "Goireas stòrais" 00

7131 * 29	 04 04 93 01 75 C5 C3 9E "Tancaichean stòrais" 00
7132 * 29	 04 04 93 01 76 C5 C3 9E "Seada thrèanaichean" 00

7133 * 34	 04 04 93 01 77 C5 C3 9E "Togalach luchd (cùlaibh)" 00
7134 * 34	 04 04 93 01 78 C5 C3 9E "Togalach luchd (beulaibh)" 00
7135 * 27	 04 04 93 01 79 C5 C3 9E "Togalaichean luchd" 00
7136 * 40	 04 04 93 01 7A C5 C3 9E "Togalaichean luchd le os-rathad" 00
7137 * 34	 04 04 93 01 7B C5 C3 9E "Os-rathad (clàran àrda)" 00

7138 * 25	 04 04 93 01 82 C5 C3 9E "Slighe bhunasach" 00
7139 * 20	 04 04 93 01 83 C5 C3 9E "Àrd-staran" 00
7140 * 15	 04 04 93 01 84 C5 C3 9E "Staran" 00
7141 * 13	 04 04 93 01 85 C5 C3 9E "Tùr" 00
7142 * 16	 04 04 93 01 86 C5 C3 9E "Fasgadh" 00
7143 * 25	 04 04 93 01 87 C5 C3 9E "Suids rèile (T)" 00
7144 * 25	 04 04 93 01 88 C5 C3 9E "Suids rèile (D)" 00
7145 * 33	 04 04 93 01 89 C5 C3 9E "Bufairean meadhanach (T)" 00
7146 * 33	 04 04 93 01 8A C5 C3 9E "Bufairean meadhanach (D)" 00
7147 * 19	 04 04 93 01 8B C5 C3 9E "Bufair (T)" 00
7148 * 19	 04 04 93 01 8C C5 C3 9E "Bufair (D)" 00
7149 * 37	 04 04 93 01 8D C5 C3 9E "Slighe gun rèile meadhanach" 00

// Station class names
7150 * 25	 04 04 93 01 00 C4 C3 9E "ISR: Stèiseanan" 00
7151 * 34	 04 04 93 01 12 C4 C3 9E "ISR: Innealan-socrachaidh" 00
7152 * 23	 04 04 93 01 36 C4 C3 9E "ISR: Bun-stuth" 00
7153 * 40	 04 04 93 01 4D C4 C3 9E "ISR: Bathar air a phròiseasadh" 00
7154 * 23	 04 04 93 01 66 C4 C3 9E "ISR: Goireasan" 00
7155 * 33	 04 04 93 01 82 C4 C3 9E "ISR: Raon-cruinneachaidh" 00
// Station names
7156 * 32	 04 04 8D 01 00 C5 C3 9E "Stanica za utovar žita" 00
7157 * 24	 04 04 8D 01 01 C5 C3 9E "Stočna stanica" 00
7158 * 23	 04 04 8D 01 02 C5 C3 9E "Silos za žito" 00
7159 * 25	 04 04 8D 01 03 C5 C3 9E "Silos za rudače" 00
7160 * 32	 04 04 8D 01 04 C5 C3 9E "Istovarivač za rudače" 00
7161 * 27	 04 04 8D 01 05 C5 C3 9E "Naftna postrojenja" 00
7162 * 31	 04 04 8D 01 06 C5 C3 9E "Stanica za utovar drva" 00
7163 * 26	 04 04 8D 01 07 C5 C3 9E "Osigurana stanica" 00
7164 * 31	 04 04 8D 01 08 C5 C3 9E "Pumpna stanica za vodu" 00
7165 * 26	 04 04 8D 01 09 C5 C3 9E "Teretna stanica A" 00
7166 * 26	 04 04 8D 01 0A C5 C3 9E "Teretna stanica B" 00
7167 * 27	 04 04 8D 01 0E C5 C3 9E "Stanica čeličane" 00
7168 * 26	 04 04 8D 01 0C C5 C3 9E "Teretna stanica C" 00
7169 * 33	 04 04 8D 01 0F C5 C3 9E "Stanica za utovar papira" 00
7170 * 32	 04 04 8D 01 10 C5 C3 9E "Stanica za utovar voća" 00
7171 * 31	 04 04 8D 01 11 C5 C3 9E "Stanica za utovar gume" 00
7172 * 32	 04 04 8D 01 0B C5 C3 9E "Teretna stanica (niska)" 00
7173 * 33	 04 04 8D 01 0D C5 C3 9E "Stanica za teške terete" 00

7174 * 30	 04 04 8D 01 12 C5 C3 9E "Prazni peroni (niski)" 00
7175 * 31	 04 04 8D 01 13 C5 C3 9E "Prazni peroni (visoki)" 00
7176 * 36	 04 04 8D 01 14 C5 C3 9E "Jednostrani peroni (straga)" 00
7177 * 38	 04 04 8D 01 15 C5 C3 9E "Jednostrani peroni (sprijeda)" 00
7178 * 18	 04 04 8D 01 16 C5 C3 9E "Rampa (N)" 00
7179 * 18	 04 04 8D 01 17 C5 C3 9E "Rampa (S)" 00
7180 * 30	 04 04 8D 01 18 C5 C3 9E "Jednostrana rampa (N)" 00
7181 * 30	 04 04 8D 01 19 C5 C3 9E "Jednostrana rampa (S)" 00
7182 * 26	 04 04 8D 01 1C C5 C3 9E "Odbojnici (niski)" 00
7183 * 27	 04 04 8D 01 1D C5 C3 9E "Odbojnici (visoki)" 00
7184 * 29	 04 04 8D 01 1E C5 C3 9E "Prazno polje (nisko)" 00
7185 * 40	 04 04 8D 01 1F C5 C3 9E "Prazno polje sa ogradom (nisko)" 00
7186 * 30	 04 04 8D 01 20 C5 C3 9E "Prazno polje (visoko)" 00
7187 * 34	 04 04 8D 01 1A C5 C3 9E "Rampa (N, bez kolosijeka)" 00
7188 * 34	 04 04 8D 01 1B C5 C3 9E "Rampa (S, bez kolosijeka)" 00

7189 * 14	 04 04 8D 01 21 C5 C3 9E "Cesta" 00
7190 * 24	 04 04 8D 01 22 C5 C3 9E "Cesta s ogradom" 00
7191 * 34	 04 04 8D 01 23 C5 C3 9E "Cestovno-pružni prijelaz" 00
7192 * 32	 04 04 8D 01 24 C5 C3 9E "Kamionsko parkiralište" 00
7193 * 26	 04 04 8D 01 25 C5 C3 9E "Cestovni ulaz (S)" 00
7194 * 26	 04 04 8D 01 26 C5 C3 9E "Cestovni ulaz (N)" 00
7195 * 39	 04 04 8D 01 27 C5 C3 9E "Pristup za cestovna vozila (N)" 00
7196 * 39	 04 04 8D 01 28 C5 C3 9E "Pristup za cestovna vozila (S)" 00

7197 * 19	 04 04 8D 01 29 C5 C3 9E "Vodotoranj" 00
7198 * 17	 04 04 8D 01 2A C5 C3 9E "Dizalica" 00
7199 * 28	 04 04 8D 01 2B C5 C3 9E "Dizalica na šinama" 00
7200 * 26	 04 04 8D 01 2C C5 C3 9E "Nadvisna dizalica" 00

7201 * 26	 04 04 8D 01 2D C5 C3 9E "Pokretni kran (N)" 00
7202 * 42	 04 04 8D 01 2E C5 C3 9E "Pokretni kran (N, bez kolosijeka)" 00
7203 * 26	 04 04 8D 01 2F C5 C3 9E "Pokretni kran (S)" 00
7204 * 42	 04 04 8D 01 30 C5 C3 9E "Pokretni kran (S, bez kolosijeka)" 00
7205 * 37	 04 04 8D 01 31 C5 C3 9E "Pokretni kran (N, starinski)" 00
7206 * 53	 04 04 8D 01 32 C5 C3 9E "Pokretni kran (N, bez kolosijeka, starinski)" 00
7207 * 37	 04 04 8D 01 33 C5 C3 9E "Pokretni kran (S, starinski)" 00
7208 * 53	 04 04 8D 01 34 C5 C3 9E "Pokretni kran (S, bez kolosijeka, starinski)" 00
7209 * 32	 04 04 8D 01 35 C5 C3 9E "Dizalica na gusjenicama" 00

7210 * 21	 04 04 8D 01 36 C5 C3 9E "Zgrada farme" 00
7211 * 26	 04 04 8D 01 37 C5 C3 9E "Mala zgrada farme" 00
7212 * 26	 04 04 8D 01 38 C5 C3 9E "Postrojenja farme" 00
7213 * 23	 04 04 8D 01 39 C5 C3 9E "Žitni tankovi" 00
7214 * 28	 04 04 8D 01 3A C5 C3 9E "Dvorište za svinje" 00
7215 * 26	 04 04 8D 01 3B C5 C3 9E "Stočno dvorište" 00
7216 * 26	 04 04 8D 01 3C C5 C3 9E "Mliječni tankovi" 00
7217 * 30	 04 04 8D 01 3D C5 C3 9E "Stočne nadstrešnice" 00
7218 * 24	 04 04 8D 01 3E C5 C3 9E "Peroni s voćem" 00
7219 * 14	 04 04 8D 01 3F C5 C3 9E "Voće" 00

7220 * 26	 04 04 8D 01 40 C5 C3 9E "Peroni s rudačom" 00
7221 * 34	 04 04 8D 01 41 C5 C3 9E "Utovarni šaht za vlakove" 00
7222 * 27	 04 04 8D 01 42 C5 C3 9E "Pokretna traka (N)" 00
7223 * 27	 04 04 8D 01 43 C5 C3 9E "Pokretna traka (S)" 00
7224 * 21	 04 04 8D 01 44 C5 C3 9E "Hrpa rudače" 00
7225 * 26	 04 04 8D 01 45 C5 C3 9E "Kamion za rudače" 00
7226 * 31	 04 04 8D 01 46 C5 C3 9E "Buldožer (s rudačom)" 00
7227 * 33	 04 04 8D 01 47 C5 C3 9E "Utovarivač (s rudačom)" 00

7228 * 28	 04 04 8D 01 48 C5 C3 9E "Rezervoari za naftu" 00

7229 * 23	 04 04 8D 01 49 C5 C3 9E "Peroni s drvom" 00
7230 * 18	 04 04 8D 01 4A C5 C3 9E "Hrpa drva" 00
7231 * 28	 04 04 8D 01 4B C5 C3 9E "Utovarivač trupaca" 00
7232 * 24	 04 04 8D 01 4C C5 C3 9E "Slagač trupaca" 00

7233 * 34	 04 04 8D 01 7E C5 C3 9E "Osigurana nadstrešnica A" 00
7234 * 34	 04 04 8D 01 7F C5 C3 9E "Osigurana nadstrešnica B" 00
7235 * 34	 04 04 8D 01 80 C5 C3 9E "Osigurana nadstrešnica C" 00
7236 * 35	 04 04 8D 01 7C C5 C3 9E "Nadprijelaz (niski peroni)" 00
7237 * 26	 04 04 8D 01 81 C5 C3 9E "Osigurani parking" 00
7238 * 32	 04 04 8D 01 7D C5 C3 9E "Nadprijelaz (bez pruge)" 00

7239 * 32	 04 04 8D 01 4D C5 C3 9E "Peroni s općim teretom" 00
7240 * 40	 04 04 8D 01 4E C5 C3 9E "Peroni s općim teretom (niski)" 00
7241 * 20	 04 04 8D 01 4F C5 C3 9E "Opći teret" 00
7242 * 32	 04 04 8D 01 50 C5 C3 9E "Viličar (sa sanducima)" 00
7243 * 28	 04 04 8D 01 51 C5 C3 9E "Peron sa viličarem" 00
7244 * 36	 04 04 8D 01 52 C5 C3 9E "Peron sa viličarem (niska)" 00
7245 * 36	 04 04 8D 01 53 C5 C3 9E "Peroni za utovar kontejnera" 00
7246 * 38	 04 04 8D 01 54 C5 C3 9E "Peroni s kontejnerima (niski)" 00
7247 * 31	 04 04 8D 01 55 C5 C3 9E "Kontejneri s dizalicom" 00
7248 * 19	 04 04 8D 01 56 C5 C3 9E "Kontejneri" 00
7249 * 35	 04 04 8D 01 57 C5 C3 9E "Viličar (sa kontejnerima)" 00
7250 * 27	 04 04 8D 01 58 C5 C3 9E "Slagač kontejnera" 00
7251 * 36	 04 04 8D 01 59 C5 C3 9E "Pokretni most za kontejnere" 00
7252 * 26	 04 04 8D 01 5A C5 C3 9E "Peroni s čelikom" 00
7253 * 15	 04 04 8D 01 5B C5 C3 9E "Čelik" 00
7254 * 24	 04 04 8D 01 5C C5 C3 9E "Peroni s bakrom" 00
7255 * 14	 04 04 8D 01 5D C5 C3 9E "Bakar" 00
7256 * 26	 04 04 8D 01 5E C5 C3 9E "Peroni s bačvama" 00
7257 * 34	 04 04 8D 01 5F C5 C3 9E "Peroni s bačvama (niski)" 00
7258 * 15	 04 04 8D 01 60 C5 C3 9E "Bačve" 00
7259 * 25	 04 04 8D 01 61 C5 C3 9E "Peroni s daskama" 00
7260 * 14	 04 04 8D 01 62 C5 C3 9E "Daske" 00
7261 * 25	 04 04 8D 01 63 C5 C3 9E "Peroni s papirom" 00
7262 * 14	 04 04 8D 01 64 C5 C3 9E "Papir" 00
7263 * 19	 04 04 8D 01 65 C5 C3 9E "Automobili" 00

7264 * 25	 04 04 8D 01 66 C5 C3 9E "Ured (starinski)" 00
7265 * 13	 04 04 8D 01 67 C5 C3 9E "Ured" 00
7266 * 23	 04 04 8D 01 68 C5 C3 9E "Ured (moderni)" 00
7267 * 32	 04 04 8D 01 69 C5 C3 9E "Ured (niski, starinski)" 00
7268 * 21	 04 04 8D 01 6A C5 C3 9E "Ured (niski)" 00
7269 * 30	 04 04 8D 01 6B C5 C3 9E "Ured (niski, moderni)" 00
7270 * 30	 04 04 8D 01 6C C5 C3 9E "Glavna upravna zgrada" 00
7271 * 22	 04 04 8D 01 6D C5 C3 9E "Nadstrešnice" 00
7272 * 48	 04 04 8D 01 6E C5 C3 9E "Nadstrešnice za otvoreno skladištenje" 00

7273 * 22	 04 04 8D 01 6F C5 C3 9E "Dostavni ured" 00
7274 * 26	 04 04 8D 01 70 C5 C3 9E "Veliko skladište" 00
7275 * 24	 04 04 8D 01 71 C5 C3 9E "Malo skladište" 00
7276 * 27	 04 04 8D 01 72 C5 C3 9E "Moderno skladište" 00
7277 * 28	 04 04 8D 01 73 C5 C3 9E "Skladište od cigle" 00
7278 * 19	 04 04 8D 01 74 C5 C3 9E "Skladišta" 00

7279 * 19	 04 04 8D 01 75 C5 C3 9E "Rezervoari" 00
7280 * 30	 04 04 8D 01 76 C5 C3 9E "Skladište za vlakove" 00

7281 * 32	 04 04 8D 01 77 C5 C3 9E "Teretna zgrada (straga)" 00
7282 * 34	 04 04 8D 01 78 C5 C3 9E "Teretna zgrada (sprijeda)" 00
7283 * 23	 04 04 8D 01 79 C5 C3 9E "Teretne zgrade" 00
7284 * 40	 04 04 8D 01 7A C5 C3 9E "Teretne zgrade sa nadprijelazom" 00
7285 * 36	 04 04 8D 01 7B C5 C3 9E "Nadprijelaz (visoki peroni)" 00

7286 * 26	 04 04 8D 01 82 C5 C3 9E "Osnovni kolosijek" 00
7287 * 15	 04 04 8D 01 83 C5 C3 9E "Prolaz" 00
7288 * 17	 04 04 8D 01 84 C5 C3 9E "Prijelaz" 00
7289 * 15	 04 04 8D 01 85 C5 C3 9E "Toranj" 00
7290 * 19	 04 04 8D 01 86 C5 C3 9E "Sklonište" 00
7291 * 22	 04 04 8D 01 87 C5 C3 9E "Skretnica (N)" 00
7292 * 22	 04 04 8D 01 88 C5 C3 9E "Skretnica (S)" 00
7293 * 33	 04 04 8D 01 89 C5 C3 9E "Središnji odbojnici (N)" 00
7294 * 33	 04 04 8D 01 8A C5 C3 9E "Središnji odbojnici (S)" 00
7295 * 21	 04 04 8D 01 8B C5 C3 9E "Odbojnik (N)" 00
7296 * 21	 04 04 8D 01 8C C5 C3 9E "Odbojnik (S)" 00
7297 * 40	 04 04 8D 01 8D C5 C3 9E "Kolosijek bez srednje tračnice" 00

// Station class names
7298 * 21	 04 04 8D 01 00 C4 C3 9E "ISR: Stanice" 00
7299 * 25	 04 04 8D 01 12 C4 C3 9E "ISR: Instalacije" 00
7300 * 22	 04 04 8D 01 36 C4 C3 9E "ISR: Sirovine" 00
7301 * 26	 04 04 8D 01 4D C4 C3 9E "ISR: Prerađevine" 00
7302 * 25	 04 04 8D 01 66 C4 C3 9E "ISR: Postrojenja" 00
7303 * 32	 04 04 8D 01 82 C4 C3 9E "ISR: Otpremna dvorišta" 00
// Station names
7304 * 26	 04 04 A3 01 00 C5 C3 9E "Statioun fir Kaar" 00
7305 * 32	 04 04 A3 01 01 C5 C3 9E "Statioun fir Béischten" 00
7306 * 17	 04 04 A3 01 02 C5 C3 9E "Kaarsilo" 00
7307 * 20	 04 04 A3 01 03 C5 C3 9E "Mineralsilo" 00
7308 * 28	 04 04 A3 01 04 C5 C3 9E "Mineralienentlueder" 00
7309 * 26	 04 04 A3 01 05 C5 C3 9E "Uelegariichtungen" 00
7310 * 26	 04 04 A3 01 06 C5 C3 9E "Statioun fir Holz" 00
7311 * 36	 04 04 A3 01 07 C5 C3 9E "Héichsécherheets-Statioun" 00
7312 * 22	 04 04 A3 01 08 C5 C3 9E "Waasserpompel" 00
7313 * 24	 04 04 A3 01 09 C5 C3 9E "Wuerestatioun A" 00
7314 * 24	 04 04 A3 01 0A C5 C3 9E "Wuerestatioun B" 00
7315 * 26	 04 04 A3 01 0E C5 C3 9E "Stolwierkstatioun" 00
7316 * 23	 04 04 A3 01 0C C5 C3 9E "Gidderstatioun" 00
7317 * 29	 04 04 A3 01 0F C5 C3 9E "Statioun fir Pabeier" 00
7318 * 31	 04 04 A3 01 10 C5 C3 9E "Statioun fir Friichten" 00
7319 * 27	 04 04 A3 01 11 C5 C3 9E "Statioun fir Gummi" 00
7320 * 38	 04 04 A3 01 0B C5 C3 9E "Statioun fir Wueren (niddreg)" 00
7321 * 34	 04 04 A3 01 0D C5 C3 9E "Schwéier Gidder Statioun" 00

7322 * 34	 04 04 A3 01 12 C5 C3 9E "Eidel Plattform (niddreg)" 00
7323 * 33	 04 04 A3 01 13 C5 C3 9E "Eidel Plattform (héich)" 00
7324 * 45	 04 04 A3 01 14 C5 C3 9E "Plattform op enger Säit (hannescht)" 00
7325 * 43	 04 04 A3 01 15 C5 C3 9E "Plattform op enger Säit (viischt)" 00
7326 * 17	 04 04 A3 01 16 C5 C3 9E "Ramp (N)" 00
7327 * 17	 04 04 A3 01 17 C5 C3 9E "Ramp (S)" 00
7328 * 27	 04 04 A3 01 18 C5 C3 9E "Eesäiteg Ramp (N)" 00
7329 * 27	 04 04 A3 01 19 C5 C3 9E "Eesäiteg Ramp (S)" 00
7330 * 25	 04 04 A3 01 1C C5 C3 9E "Puffer (niddreg)" 00
7331 * 24	 04 04 A3 01 1D C5 C3 9E "Puffer (héich)" 00
7332 * 30	 04 04 A3 01 1E C5 C3 9E "Eidelt Feld (niddreg)" 00
7333 * 39	 04 04 A3 01 1F C5 C3 9E "Eidelt Feld mat Zonk (niddreg)" 00
7334 * 29	 04 04 A3 01 20 C5 C3 9E "Eidelt Feld (héich)" 00
7335 * 30	 04 04 A3 01 1A C5 C3 9E "Ramp (N, ouni Schinn)" 00
7336 * 30	 04 04 A3 01 1B C5 C3 9E "Ramp (S, ouni Schinn)" 00

7337 * 16	 04 04 A3 01 21 C5 C3 9E "Strooss" 00
7338 * 25	 04 04 A3 01 22 C5 C3 9E "Strooss mat Zonk" 00
7339 * 26	 04 04 A3 01 23 C5 C3 9E "Stroossekräizung" 00
7340 * 23	 04 04 A3 01 24 C5 C3 9E "Camionsparking" 00
7341 * 27	 04 04 A3 01 25 C5 C3 9E "Stroossenagang (S)" 00
7342 * 27	 04 04 A3 01 26 C5 C3 9E "Stroossenagang (N)" 00
7343 * 34	 04 04 A3 01 27 C5 C3 9E "Stroossegefierzougang (N)" 00
7344 * 34	 04 04 A3 01 28 C5 C3 9E "Stroossegefierzougang (S)" 00

7345 * 21	 04 04 A3 01 29 C5 C3 9E "Waassertuerm" 00
7346 * 18	 04 04 A3 01 2A C5 C3 9E "Tuermkran" 00
7347 * 27	 04 04 A3 01 2B C5 C3 9E "Kran ouni Schinnen" 00
7348 * 13	 04 04 A3 01 2C C5 C3 9E "Kran" 00

7349 * 24	 04 04 A3 01 2D C5 C3 9E "Bréckekran (N)" 00
7350 * 36	 04 04 A3 01 2E C5 C3 9E "Bréckekran (N,ouni Schinn)" 00
7351 * 24	 04 04 A3 01 2F C5 C3 9E "Bréckekran (S)" 00
7352 * 37	 04 04 A3 01 30 C5 C3 9E "Bréckekran (S, ouni Schinn)" 00
7353 * 35	 04 04 A3 01 31 C5 C3 9E "Bréckekran (N, klassesch)" 00
7354 * 48	 04 04 A3 01 32 C5 C3 9E "Bréckekran (N, ouni Schinn, klassesch)" 00
7355 * 35	 04 04 A3 01 33 C5 C3 9E "Bréckekran (S, klassesch)" 00
7356 * 48	 04 04 A3 01 34 C5 C3 9E "Bréckekran (S, ouni Schinn, klassesch)" 00
7357 * 19	 04 04 A3 01 35 C5 C3 9E "Raupenkran" 00

7358 * 24	 04 04 A3 01 36 C5 C3 9E "Baurenhaffgebai" 00
7359 * 32	 04 04 A3 01 37 C5 C3 9E "Kléngt Baurenhaffgebai" 00
7360 * 31	 04 04 A3 01 38 C5 C3 9E "Baurenhaffariichtungen" 00
7361 * 17	 04 04 A3 01 39 C5 C3 9E "Kaartank" 00
7362 * 22	 04 04 A3 01 3A C5 C3 9E "Schwéngshaff" 00
7363 * 24	 04 04 A3 01 3B C5 C3 9E "Béischtequaier" 00
7364 * 23	 04 04 A3 01 3C C5 C3 9E "Mëllechtanken" 00
7365 * 23	 04 04 A3 01 3D C5 C3 9E "Béischtestall" 00
7366 * 26	 04 04 A3 01 3E C5 C3 9E "Friichteplattform" 00
7367 * 18	 04 04 A3 01 3F C5 C3 9E "Friichten" 00

7368 * 28	 04 04 A3 01 40 C5 C3 9E "Mineralienplattform" 00
7369 * 27	 04 04 A3 01 41 C5 C3 9E "Zuchluedungsrutsch" 00
7370 * 24	 04 04 A3 01 42 C5 C3 9E "Förderband (N)" 00
7371 * 24	 04 04 A3 01 43 C5 C3 9E "Förderband (S)" 00
7372 * 23	 04 04 A3 01 44 C5 C3 9E "Mineralienkoup" 00
7373 * 20	 04 04 A3 01 45 C5 C3 9E "Minnecamion" 00
7374 * 31	 04 04 A3 01 46 C5 C3 9E "Bulldozer (Mineralien)" 00
7375 * 28	 04 04 A3 01 47 C5 C3 9E "Bagger (Mineralien)" 00

7376 * 20	 04 04 A3 01 48 C5 C3 9E "Uelegtanken" 00

7377 * 22	 04 04 A3 01 49 C5 C3 9E "Holzplattform" 00
7378 * 17	 04 04 A3 01 4A C5 C3 9E "Holzkoup" 00
7379 * 18	 04 04 A3 01 4B C5 C3 9E "Bambagger" 00
7380 * 20	 04 04 A3 01 4C C5 C3 9E "Holzstapler" 00

7381 * 36	 04 04 A3 01 7E C5 C3 9E "Héichsécherheets-Schapp A" 00
7382 * 36	 04 04 A3 01 7F C5 C3 9E "Héichsécherheets-Schapp B" 00
7383 * 36	 04 04 A3 01 80 C5 C3 9E "Héichsécherheets-Schapp C" 00
7384 * 35	 04 04 A3 01 7C C5 C3 9E "Bréck (niddreg Plattform)" 00
7385 * 33	 04 04 A3 01 81 C5 C3 9E "Héichsécherheets-Lager" 00
7386 * 29	 04 04 A3 01 7D C5 C3 9E "Bréck (ouni Schinn)" 00

7387 * 33	 04 04 A3 01 4D C5 C3 9E "Generell Wuerenplattform" 00
7388 * 43	 04 04 A3 01 4E C5 C3 9E "Generell Wuerenplattform (niddreg)" 00
7389 * 24	 04 04 A3 01 4F C5 C3 9E "Generell Wueren" 00
7390 * 33	 04 04 A3 01 50 C5 C3 9E "Gabelstapler (Këschten)" 00
7391 * 30	 04 04 A3 01 51 C5 C3 9E "Gabelstaplerplattform" 00
7392 * 40	 04 04 A3 01 52 C5 C3 9E "Gabelstaplerplattform (niddreg)" 00
7393 * 27	 04 04 A3 01 53 C5 C3 9E "Containerplattform" 00
7394 * 37	 04 04 A3 01 54 C5 C3 9E "Containerplattform (niddreg)" 00
7395 * 27	 04 04 A3 01 55 C5 C3 9E "Container mat Kran" 00
7396 * 18	 04 04 A3 01 56 C5 C3 9E "Container" 00
7397 * 33	 04 04 A3 01 57 C5 C3 9E "Gabelstapler (Container)" 00
7398 * 25	 04 04 A3 01 58 C5 C3 9E "Containerstapler" 00
7399 * 21	 04 04 A3 01 59 C5 C3 9E "Greifstapler" 00
7400 * 22	 04 04 A3 01 5A C5 C3 9E "Stolplattform" 00
7401 * 13	 04 04 A3 01 5B C5 C3 9E "Stol" 00
7402 * 24	 04 04 A3 01 5C C5 C3 9E "Kofferplattform" 00
7403 * 15	 04 04 A3 01 5D C5 C3 9E "Koffer" 00
7404 * 25	 04 04 A3 01 5E C5 C3 9E "Fässerplattform" 00
7405 * 35	 04 04 A3 01 5F C5 C3 9E "Fässerplattform (niddreg)" 00
7406 * 16	 04 04 A3 01 60 C5 C3 9E "Fässer" 00
7407 * 22	 04 04 A3 01 61 C5 C3 9E "Holzplattform" 00
7408 * 13	 04 04 A3 01 62 C5 C3 9E "Holz" 00
7409 * 25	 04 04 A3 01 63 C5 C3 9E "Pabeierplattform" 00
7410 * 16	 04 04 A3 01 64 C5 C3 9E "Pabeier" 00
7411 * 15	 04 04 A3 01 65 C5 C3 9E "Autoen" 00

7412 * 27	 04 04 A3 01 66 C5 C3 9E "Bureau (klassesch)" 00
7413 * 15	 04 04 A3 01 67 C5 C3 9E "Bureau" 00
7414 * 24	 04 04 A3 01 68 C5 C3 9E "Bureau (modern)" 00
7415 * 36	 04 04 A3 01 69 C5 C3 9E "Bureau (niddreg, klassesch)" 00
7416 * 25	 04 04 A3 01 6A C5 C3 9E "Bureau (niddreg)" 00
7417 * 33	 04 04 A3 01 6B C5 C3 9E "Bureau (niddreg, modern)" 00
7418 * 19	 04 04 A3 01 6C C5 C3 9E "Haaptgebai" 00
7419 * 15	 04 04 A3 01 6D C5 C3 9E "Ställ" 00
7420 * 22	 04 04 A3 01 6E C5 C3 9E "Openen Schapp" 00

7421 * 25	 04 04 A3 01 6F C5 C3 9E "Liwwerungsbureau" 00
7422 * 22	 04 04 A3 01 70 C5 C3 9E "Grousst Lager" 00
7423 * 21	 04 04 A3 01 71 C5 C3 9E "Klengt Lager" 00
7424 * 22	 04 04 A3 01 72 C5 C3 9E "Modernt Lager" 00
7425 * 20	 04 04 A3 01 73 C5 C3 9E "Zillenlager" 00
7426 * 26	 04 04 A3 01 74 C5 C3 9E "Lagerariichtungen" 00

7427 * 18	 04 04 A3 01 75 C5 C3 9E "Tanklager" 00
7428 * 19	 04 04 A3 01 76 C5 C3 9E "Zuchschapp" 00

7429 * 32	 04 04 A3 01 77 C5 C3 9E "Gidderlager (hannescht)" 00
7430 * 30	 04 04 A3 01 78 C5 C3 9E "Gidderlager (viischt)" 00
7431 * 20	 04 04 A3 01 79 C5 C3 9E "Gidderlager" 00
7432 * 31	 04 04 A3 01 7A C5 C3 9E "Gidderlager mat Bréck" 00
7433 * 34	 04 04 A3 01 7B C5 C3 9E "Bréck (héich Plattform)" 00

7434 * 23	 04 04 A3 01 82 C5 C3 9E "Standardschinn" 00
7435 * 25	 04 04 A3 01 83 C5 C3 9E "Iwwergangsbréck" 00
7436 * 18	 04 04 A3 01 84 C5 C3 9E "Kräizung" 00
7437 * 14	 04 04 A3 01 85 C5 C3 9E "Tuerm" 00
7438 * 15	 04 04 A3 01 86 C5 C3 9E "Schapp" 00
7439 * 18	 04 04 A3 01 87 C5 C3 9E "Weich (N)" 00
7440 * 18	 04 04 A3 01 88 C5 C3 9E "Weich (S)" 00
7441 * 26	 04 04 A3 01 89 C5 C3 9E "Mëttelpuffer (N)" 00
7442 * 26	 04 04 A3 01 8A C5 C3 9E "Mëttelpuffer (S)" 00
7443 * 19	 04 04 A3 01 8B C5 C3 9E "Puffer (N)" 00
7444 * 19	 04 04 A3 01 8C C5 C3 9E "Puffer (S)" 00
7445 * 27	 04 04 A3 01 8D C5 C3 9E "ouni Mëttelschinn" 00

// Station class names
7446 * 24	 04 04 A3 01 00 C4 C3 9E "ISR: Statiounen" 00
7447 * 27	 04 04 A3 01 12 C4 C3 9E "ISR: Ausstattungen" 00
7448 * 26	 04 04 A3 01 36 C4 C3 9E "ISR: Réimaterial" 00
7449 * 36	 04 04 A3 01 4D C4 C3 9E "ISR: Verschafften Produiten" 00
7450 * 21	 04 04 A3 01 66 C4 C3 9E "ISR: Gebaier" 00
7451 * 21	 04 04 A3 01 82 C4 C3 9E "ISR: Weichen" 00
// Station names
7452 * 30	 04 04 AF 01 00 C5 C3 9E "Lastestasjon for korn" 00
7453 * 32	 04 04 AF 01 01 C5 C3 9E "Lastestasjon for buskap" 00
7454 * 17	 04 04 AF 01 02 C5 C3 9E "Kornsilo" 00
7455 * 20	 04 04 AF 01 03 C5 C3 9E "Mineralsilo" 00
7456 * 22	 04 04 AF 01 04 C5 C3 9E "Minerallosser" 00
7457 * 24	 04 04 AF 01 05 C5 C3 9E "Oljefasiliteter" 00
7458 * 33	 04 04 AF 01 06 C5 C3 9E "Lastestasjon for tømmer" 00
7459 * 31	 04 04 AF 01 07 C5 C3 9E "Verditransport stasjon" 00
7460 * 28	 04 04 AF 01 08 C5 C3 9E "Vannpumpingsstasjon" 00
7461 * 23	 04 04 AF 01 09 C5 C3 9E "Godsterminal A" 00
7462 * 23	 04 04 AF 01 0A C5 C3 9E "Godsterminal B" 00
7463 * 26	 04 04 AF 01 0E C5 C3 9E "Smelteverkstasjon" 00
7464 * 21	 04 04 AF 01 0C C5 C3 9E "Fraktstasjon" 00
7465 * 31	 04 04 AF 01 0F C5 C3 9E "Lastestasjon for papir" 00
7466 * 31	 04 04 AF 01 10 C5 C3 9E "Lastestasjon for frukt" 00
7467 * 31	 04 04 AF 01 11 C5 C3 9E "Lastestasjon for gummi" 00
7468 * 27	 04 04 AF 01 0B C5 C3 9E "Godsterminal (lav)" 00
7469 * 25	 04 04 AF 01 0D C5 C3 9E "Tunggodsterminal" 00

7470 * 28	 04 04 AF 01 12 C5 C3 9E "Tom plattform (lav)" 00
7471 * 29	 04 04 AF 01 13 C5 C3 9E "Tom plattform (høy)" 00
7472 * 32	 04 04 AF 01 14 C5 C3 9E "Ensidig plattform (bak)" 00
7473 * 35	 04 04 AF 01 15 C5 C3 9E "Ensidig plattform (framme)" 00
7474 * 18	 04 04 AF 01 16 C5 C3 9E "Rampe (N)" 00
7475 * 18	 04 04 AF 01 17 C5 C3 9E "Rampe (S)" 00
7476 * 26	 04 04 AF 01 18 C5 C3 9E "Ensidig rampe (N)" 00
7477 * 26	 04 04 AF 01 19 C5 C3 9E "Ensidig rampe (S)" 00
7478 * 23	 04 04 AF 01 1C C5 C3 9E "Buffere (lave)" 00
7479 * 24	 04 04 AF 01 1D C5 C3 9E "Buffere (høye)" 00
7480 * 25	 04 04 AF 01 1E C5 C3 9E "Tom brikke (lav)" 00
7481 * 36	 04 04 AF 01 1F C5 C3 9E "Tom brikke med gjerde (lav)" 00
7482 * 26	 04 04 AF 01 20 C5 C3 9E "Tom brikke (høy)" 00
7483 * 29	 04 04 AF 01 1A C5 C3 9E "Rampe (N, uten spor)" 00
7484 * 29	 04 04 AF 01 1B C5 C3 9E "Rampe (S, uten spor)" 00

7485 * 12	 04 04 AF 01 21 C5 C3 9E "Vei" 00
7486 * 23	 04 04 AF 01 22 C5 C3 9E "Vei med gjerde" 00
7487 * 17	 04 04 AF 01 23 C5 C3 9E "Veikryss" 00
7488 * 25	 04 04 AF 01 24 C5 C3 9E "Varebilparkering" 00
7489 * 23	 04 04 AF 01 25 C5 C3 9E "Adgangsvei (S)" 00
7490 * 23	 04 04 AF 01 26 C5 C3 9E "Adgangsvei (N)" 00
7491 * 33	 04 04 AF 01 27 C5 C3 9E "Adgangsvei for biler (N)" 00
7492 * 33	 04 04 AF 01 28 C5 C3 9E "Adgangsvei for biler (S)" 00

7493 * 18	 04 04 AF 01 29 C5 C3 9E "Vanntårn" 00
7494 * 18	 04 04 AF 01 2A C5 C3 9E "Heisekran" 00
7495 * 25	 04 04 AF 01 2B C5 C3 9E "Kran på skinner" 00
7496 * 20	 04 04 AF 01 2C C5 C3 9E "Traverskran" 00

7497 * 23	 04 04 AF 01 2D C5 C3 9E "Løftekran (N)" 00
7498 * 34	 04 04 AF 01 2E C5 C3 9E "Løftekran (N, uten spor)" 00
7499 * 23	 04 04 AF 01 2F C5 C3 9E "Løftekran (S)" 00
7500 * 34	 04 04 AF 01 30 C5 C3 9E "Løftekran (S, uten spor)" 00
7501 * 31	 04 04 AF 01 31 C5 C3 9E "Løftekran (N, vanlig)" 00
7502 * 42	 04 04 AF 01 32 C5 C3 9E "Løftekran (N, uten spor, vanlig)" 00
7503 * 31	 04 04 AF 01 33 C5 C3 9E "Løftekran (S, vanlig)" 00
7504 * 42	 04 04 AF 01 34 C5 C3 9E "Løftekran (S, uten spor, vanlig)" 00
7505 * 26	 04 04 AF 01 35 C5 C3 9E "Beltegående kran" 00

7506 * 18	 04 04 AF 01 36 C5 C3 9E "Gårdshus" 00
7507 * 28	 04 04 AF 01 37 C5 C3 9E "Liten gårdsbygning" 00
7508 * 24	 04 04 AF 01 38 C5 C3 9E "Gårdstilbehør" 00
7509 * 19	 04 04 AF 01 39 C5 C3 9E "Korntanker" 00
7510 * 19	 04 04 AF 01 3A C5 C3 9E "Grisebinge" 00
7511 * 18	 04 04 AF 01 3B C5 C3 9E "Kvegrampe" 00
7512 * 20	 04 04 AF 01 3C C5 C3 9E "Melketanker" 00
7513 * 19	 04 04 AF 01 3D C5 C3 9E "Kvegbåser" 00
7514 * 28	 04 04 AF 01 3E C5 C3 9E "Plattform for frukt" 00
7515 * 14	 04 04 AF 01 3F C5 C3 9E "Frukt" 00

7516 * 32	 04 04 AF 01 40 C5 C3 9E "Plattform for mineraler" 00
7517 * 26	 04 04 AF 01 41 C5 C3 9E "Toglastings-sjakt" 00
7518 * 27	 04 04 AF 01 42 C5 C3 9E "Transportbånd (N)" 00
7519 * 27	 04 04 AF 01 43 C5 C3 9E "Transportbånd (S)" 00
7520 * 20	 04 04 AF 01 44 C5 C3 9E "Mineralhaug" 00
7521 * 17	 04 04 AF 01 45 C5 C3 9E "Gruvebil" 00
7522 * 30	 04 04 AF 01 46 C5 C3 9E "Bulldoser (mineraler)" 00
7523 * 32	 04 04 AF 01 47 C5 C3 9E "Frontlaster (mineraler)" 00

7524 * 19	 04 04 AF 01 48 C5 C3 9E "Oljetanker" 00

7525 * 30	 04 04 AF 01 49 C5 C3 9E "Plattform for tømmer" 00
7526 * 22	 04 04 AF 01 4A C5 C3 9E "Tømmerstabel" 00
7527 * 22	 04 04 AF 01 4B C5 C3 9E "Tømmerlaster" 00
7528 * 23	 04 04 AF 01 4C C5 C3 9E "Tømmerstabler" 00

7529 * 31	 04 04 AF 01 7E C5 C3 9E "Lager for verdisaker A" 00
7530 * 31	 04 04 AF 01 7F C5 C3 9E "Lager for verdisaker B" 00
7531 * 31	 04 04 AF 01 80 C5 C3 9E "Lager for verdisaker C" 00
7532 * 45	 04 04 AF 01 7C C5 C3 9E "Losser for verdisaker (lav platform)" 00
7533 * 32	 04 04 AF 01 81 C5 C3 9E "Verditransportparkering" 00
7534 * 30	 04 04 AF 01 7D C5 C3 9E "Losser for verdisaker" 00

7535 * 27	 04 04 AF 01 4D C5 C3 9E "Plattform med last" 00
7536 * 33	 04 04 AF 01 4E C5 C3 9E "Plattform med last (lav)" 00
7537 * 22	 04 04 AF 01 4F C5 C3 9E "Generell last" 00
7538 * 29	 04 04 AF 01 50 C5 C3 9E "Gaffeltruck (kasser)" 00
7539 * 34	 04 04 AF 01 51 C5 C3 9E "Plattform med gaffeltruck" 00
7540 * 40	 04 04 AF 01 52 C5 C3 9E "Plattform med gaffeltruck (lav)" 00
7541 * 27	 04 04 AF 01 53 C5 C3 9E "Kontainerplattform" 00
7542 * 33	 04 04 AF 01 54 C5 C3 9E "Kontainerplattform (lav)" 00
7543 * 28	 04 04 AF 01 55 C5 C3 9E "Kontainere med kran" 00
7544 * 19	 04 04 AF 01 56 C5 C3 9E "Kontainere" 00
7545 * 33	 04 04 AF 01 57 C5 C3 9E "Gaffeltruck (kontainere)" 00
7546 * 25	 04 04 AF 01 58 C5 C3 9E "Kontainerstabler" 00
7547 * 21	 04 04 AF 01 59 C5 C3 9E "Reachstacker" 00
7548 * 23	 04 04 AF 01 5A C5 C3 9E "Stålplattform" 00
7549 * 14	 04 04 AF 01 5B C5 C3 9E "Stål" 00
7550 * 24	 04 04 AF 01 5C C5 C3 9E "Kobberplattform" 00
7551 * 15	 04 04 AF 01 5D C5 C3 9E "Kobber" 00
7552 * 24	 04 04 AF 01 5E C5 C3 9E "Tønneplattform" 00
7553 * 30	 04 04 AF 01 5F C5 C3 9E "Tønneplattform (lav)" 00
7554 * 16	 04 04 AF 01 60 C5 C3 9E "Tønner" 00
7555 * 24	 04 04 AF 01 61 C5 C3 9E "Plankeplattform" 00
7556 * 16	 04 04 AF 01 62 C5 C3 9E "Planker" 00
7557 * 23	 04 04 AF 01 63 C5 C3 9E "Papirplattform" 00
7558 * 14	 04 04 AF 01 64 C5 C3 9E "Papir" 00
7559 * 14	 04 04 AF 01 65 C5 C3 9E "Biler" 00

7560 * 24	 04 04 AF 01 66 C5 C3 9E "Kontor (vanlig)" 00
7561 * 15	 04 04 AF 01 67 C5 C3 9E "Kontor" 00
7562 * 25	 04 04 AF 01 68 C5 C3 9E "Kontor (moderne)" 00
7563 * 29	 04 04 AF 01 69 C5 C3 9E "Kontor (lav, vanlig)" 00
7564 * 22	 04 04 AF 01 6A C5 C3 9E "Kontor (lavt)" 00
7565 * 31	 04 04 AF 01 6B C5 C3 9E "Kontor (lavt, moderne)" 00
7566 * 20	 04 04 AF 01 6C C5 C3 9E "Hovedkontor" 00
7567 * 14	 04 04 AF 01 6D C5 C3 9E "Skjul" 00
7568 * 26	 04 04 AF 01 6E C5 C3 9E "Åpent lagerskjul" 00

7569 * 20	 04 04 AF 01 6F C5 C3 9E "Fraktkontor" 00
7570 * 20	 04 04 AF 01 70 C5 C3 9E "Stort lager" 00
7571 * 19	 04 04 AF 01 71 C5 C3 9E "Lite lager" 00
7572 * 22	 04 04 AF 01 72 C5 C3 9E "Moderne lager" 00
7573 * 29	 04 04 AF 01 73 C5 C3 9E "Lagerhus av murstein" 00
7574 * 17	 04 04 AF 01 74 C5 C3 9E "Lagerhus" 00

7575 * 23	 04 04 AF 01 75 C5 C3 9E "Lagringstanker" 00
7576 * 17	 04 04 AF 01 76 C5 C3 9E "Togskjul" 00

7577 * 26	 04 04 AF 01 77 C5 C3 9E "Godsbygning (bak)" 00
7578 * 28	 04 04 AF 01 78 C5 C3 9E "Godsbygning (front)" 00
7579 * 20	 04 04 AF 01 79 C5 C3 9E "Godsbygning" 00
7580 * 37	 04 04 AF 01 7A C5 C3 9E "Godsbygning med verdilossing" 00
7581 * 46	 04 04 AF 01 7B C5 C3 9E "Losser for verdisaker (høy platform)" 00

7582 * 20	 04 04 AF 01 82 C5 C3 9E "Vanlig spor" 00
7583 * 15	 04 04 AF 01 83 C5 C3 9E "Fortau" 00
7584 * 14	 04 04 AF 01 84 C5 C3 9E "Kryss" 00
7585 * 14	 04 04 AF 01 85 C5 C3 9E "Tårn" 00
7586 * 14	 04 04 AF 01 86 C5 C3 9E "Skjul" 00
7587 * 24	 04 04 AF 01 87 C5 C3 9E "Sporskifter (N)" 00
7588 * 24	 04 04 AF 01 88 C5 C3 9E "Sporskifter (S)" 00
7589 * 23	 04 04 AF 01 89 C5 C3 9E "Midtbuffer (N)" 00
7590 * 23	 04 04 AF 01 8A C5 C3 9E "Midtbuffer (S)" 00
7591 * 19	 04 04 AF 01 8B C5 C3 9E "Buffer (N)" 00
7592 * 19	 04 04 AF 01 8C C5 C3 9E "Buffer (S)" 00
7593 * 27	 04 04 AF 01 8D C5 C3 9E "Spor uten rekkverk" 00

// Station class names
7594 * 23	 04 04 AF 01 00 C4 C3 9E "ISR: Stasjoner" 00
7595 * 27	 04 04 AF 01 12 C4 C3 9E "ISR: Infrastruktur" 00
7596 * 27	 04 04 AF 01 36 C4 C3 9E "ISR: Råmaterialer" 00
7597 * 29	 04 04 AF 01 4D C4 C3 9E "ISR: Ferdigprodukter" 00
7598 * 23	 04 04 AF 01 66 C4 C3 9E "ISR: Tilbehør" 00
7599 * 22	 04 04 AF 01 82 C4 C3 9E "ISR: Togstall" 00
// Station names
7600 * 24	 04 04 8C 01 00 C5 C3 9E "穀物裝載站" 00
7601 * 18	 04 04 8C 01 01 C5 C3 9E "牲口站" 00
7602 * 15	 04 04 8C 01 02 C5 C3 9E "穀倉" 00
7603 * 21	 04 04 8C 01 03 C5 C3 9E "礦石倉庫" 00
7604 * 24	 04 04 8C 01 04 C5 C3 9E "礦石卸載器" 00
7605 * 21	 04 04 8C 01 05 C5 C3 9E "原油設施" 00
7606 * 24	 04 04 8C 01 06 C5 C3 9E "木材裝載站" 00
7607 * 33	 04 04 8C 01 07 C5 C3 9E "高度設防倉庫車站" 00
7608 * 18	 04 04 8C 01 08 C5 C3 9E "抽水站" 00
7609 * 36	 04 04 8C 01 09 C5 C3 9E "商品貨運站 (樣式一)" 00
7610 * 36	 04 04 8C 01 0A C5 C3 9E "商品貨運站 (樣式二)" 00
7611 * 24	 04 04 8C 01 0E C5 C3 9E "鋼材廠車站" 00
7612 * 27	 04 04 8C 01 0C C5 C3 9E "普通貨運車站" 00
7613 * 24	 04 04 8C 01 0F C5 C3 9E "紙張裝載站" 00
7614 * 24	 04 04 8C 01 10 C5 C3 9E "水果裝載站" 00
7615 * 24	 04 04 8C 01 11 C5 C3 9E "橡膠裝載站" 00
7616 * 36	 04 04 8C 01 0B C5 C3 9E "商品貨運站 (無月台)" 00
7617 * 27	 04 04 8C 01 0D C5 C3 9E "重型貨運車站" 00

7618 * 24	 04 04 8C 01 12 C5 C3 9E "空月台 (低)" 00
7619 * 24	 04 04 8C 01 13 C5 C3 9E "空月台 (高)" 00
7620 * 27	 04 04 8C 01 14 C5 C3 9E "單面月台 (後)" 00
7621 * 27	 04 04 8C 01 15 C5 C3 9E "單面月台 (前)" 00
7622 * 24	 04 04 8C 01 16 C5 C3 9E "斜台 (向北)" 00
7623 * 24	 04 04 8C 01 17 C5 C3 9E "斜台 (向南)" 00
7624 * 30	 04 04 8C 01 18 C5 C3 9E "單面斜台 (向北)" 00
7625 * 30	 04 04 8C 01 19 C5 C3 9E "單面斜台 (向南)" 00
7626 * 24	 04 04 8C 01 1C C5 C3 9E "止衝擋 (低)" 00
7627 * 24	 04 04 8C 01 1D C5 C3 9E "止衝擋 (高)" 00
7628 * 21	 04 04 8C 01 1E C5 C3 9E "空格 (低)" 00
7629 * 33	 04 04 8C 01 1F C5 C3 9E "有護欄的空格 (低)" 00
7630 * 21	 04 04 8C 01 20 C5 C3 9E "空格 (高)" 00
7631 * 36	 04 04 8C 01 1A C5 C3 9E "斜台 (向北、無鐵軌)" 00
7632 * 36	 04 04 8C 01 1B C5 C3 9E "斜台 (向南、無鐵軌)" 00

7633 * 15	 04 04 8C 01 21 C5 C3 9E "道路" 00
7634 * 33	 04 04 8C 01 22 C5 C3 9E "旁邊有護欄的道路" 00
7635 * 18	 04 04 8C 01 23 C5 C3 9E "平交道" 00
7636 * 24	 04 04 8C 01 24 C5 C3 9E "卡車停泊處" 00
7637 * 30	 04 04 8C 01 25 C5 C3 9E "道路入口 (向南)" 00
7638 * 30	 04 04 8C 01 26 C5 C3 9E "道路入口 (向北)" 00
7639 * 30	 04 04 8C 01 27 C5 C3 9E "行車斜道 (向北)" 00
7640 * 30	 04 04 8C 01 28 C5 C3 9E "行車斜道 (向南)" 00

7641 * 15	 04 04 8C 01 29 C5 C3 9E "水塔" 00
7642 * 24	 04 04 8C 01 2A C5 C3 9E "塔式起重機" 00
7643 * 24	 04 04 8C 01 2B C5 C3 9E "門式起重機" 00
7644 * 15	 04 04 8C 01 2C C5 C3 9E "天車" 00

7645 * 33	 04 04 8C 01 2D C5 C3 9E "高架起重機 (向北)" 00
7646 * 45	 04 04 8C 01 2E C5 C3 9E "高架起重機 (向北、無鐵軌)" 00
7647 * 33	 04 04 8C 01 2F C5 C3 9E "高架起重機 (向南)" 00
7648 * 45	 04 04 8C 01 30 C5 C3 9E "高架起重機 (向南、無鐵軌)" 00
7649 * 42	 04 04 8C 01 31 C5 C3 9E "高架起重機 (向北、舊式)" 00
7650 * 54	 04 04 8C 01 32 C5 C3 9E "高架起重機 (向北、無鐵軌、舊式)" 00
7651 * 42	 04 04 8C 01 33 C5 C3 9E "高架起重機 (向南、舊式)" 00
7652 * 54	 04 04 8C 01 34 C5 C3 9E "高架起重機 (向南、無鐵軌、舊式)" 00
7653 * 15	 04 04 8C 01 35 C5 C3 9E "吊機" 00

7654 * 24	 04 04 8C 01 36 C5 C3 9E "農場建築物" 00
7655 * 18	 04 04 8C 01 37 C5 C3 9E "小農舍" 00
7656 * 21	 04 04 8C 01 38 C5 C3 9E "農場設施" 00
7657 * 18	 04 04 8C 01 39 C5 C3 9E "矮穀倉" 00
7658 * 15	 04 04 8C 01 3A C5 C3 9E "豬欄" 00
7659 * 15	 04 04 8C 01 3B C5 C3 9E "牛欄" 00
7660 * 24	 04 04 8C 01 3C C5 C3 9E "牛奶儲存罐" 00
7661 * 15	 04 04 8C 01 3D C5 C3 9E "牛棚" 00
7662 * 21	 04 04 8C 01 3E C5 C3 9E "水果月台" 00
7663 * 15	 04 04 8C 01 3F C5 C3 9E "水果" 00

7664 * 21	 04 04 8C 01 40 C5 C3 9E "礦石月台" 00
7665 * 24	 04 04 8C 01 41 C5 C3 9E "原料裝載槽" 00
7666 * 27	 04 04 8C 01 42 C5 C3 9E "運輸帶 (向北)" 00
7667 * 27	 04 04 8C 01 43 C5 C3 9E "運輸帶 (向南)" 00
7668 * 18	 04 04 8C 01 44 C5 C3 9E "礦石堆" 00
7669 * 21	 04 04 8C 01 45 C5 C3 9E "礦石卡車" 00
7670 * 27	 04 04 8C 01 46 C5 C3 9E "推土機 (礦石)" 00
7671 * 21	 04 04 8C 01 47 C5 C3 9E "礦石剷車" 00

7672 * 18	 04 04 8C 01 48 C5 C3 9E "儲油鼓" 00

7673 * 21	 04 04 8C 01 49 C5 C3 9E "木材月台" 00
7674 * 15	 04 04 8C 01 4A C5 C3 9E "木材" 00
7675 * 24	 04 04 8C 01 4B C5 C3 9E "木材裝載機" 00
7676 * 24	 04 04 8C 01 4C C5 C3 9E "木材堆疊機" 00

7677 * 37	 04 04 8C 01 7E C5 C3 9E "高度設防貨倉 樣式一" 00
7678 * 37	 04 04 8C 01 7F C5 C3 9E "高度設防貨倉 樣式二" 00
7679 * 37	 04 04 8C 01 80 C5 C3 9E "高度設防貨倉 樣式三" 00
7680 * 42	 04 04 8C 01 7C C5 C3 9E "高架貨物輸送帶 (低月台)" 00
7681 * 37	 04 04 8C 01 81 C5 C3 9E "高度設防貨倉 停車場" 00
7682 * 42	 04 04 8C 01 7D C5 C3 9E "高架貨物輸送帶 (無鐵軌)" 00

7683 * 27	 04 04 8C 01 4D C5 C3 9E "普通貨物月台" 00
7684 * 33	 04 04 8C 01 4E C5 C3 9E "普通貨物月台 (低)" 00
7685 * 21	 04 04 8C 01 4F C5 C3 9E "普通貨物" 00
7686 * 30	 04 04 8C 01 50 C5 C3 9E "起重車與板條箱" 00
7687 * 24	 04 04 8C 01 51 C5 C3 9E "起重車月台" 00
7688 * 30	 04 04 8C 01 52 C5 C3 9E "起重車月台 (低)" 00
7689 * 21	 04 04 8C 01 53 C5 C3 9E "貨櫃月台" 00
7690 * 27	 04 04 8C 01 54 C5 C3 9E "貨櫃月台 (低)" 00
7691 * 21	 04 04 8C 01 55 C5 C3 9E "貨櫃吊機" 00
7692 * 15	 04 04 8C 01 56 C5 C3 9E "貨櫃" 00
7693 * 27	 04 04 8C 01 57 C5 C3 9E "起重車與貨櫃" 00
7694 * 24	 04 04 8C 01 58 C5 C3 9E "貨櫃堆疊機" 00
7695 * 24	 04 04 8C 01 59 C5 C3 9E "長臂堆疊機" 00
7696 * 21	 04 04 8C 01 5A C5 C3 9E "鋼材月台" 00
7697 * 15	 04 04 8C 01 5B C5 C3 9E "鋼材" 00
7698 * 24	 04 04 8C 01 5C C5 C3 9E "銅製品月台" 00
7699 * 18	 04 04 8C 01 5D C5 C3 9E "銅製品" 00
7700 * 21	 04 04 8C 01 5E C5 C3 9E "罐桶月台" 00
7701 * 27	 04 04 8C 01 5F C5 C3 9E "罐桶月台 (低)" 00
7702 * 15	 04 04 8C 01 60 C5 C3 9E "罐桶" 00
7703 * 21	 04 04 8C 01 61 C5 C3 9E "木板月台" 00
7704 * 15	 04 04 8C 01 62 C5 C3 9E "木板" 00
7705 * 21	 04 04 8C 01 63 C5 C3 9E "紙張月台" 00
7706 * 15	 04 04 8C 01 64 C5 C3 9E "紙張" 00
7707 * 15	 04 04 8C 01 65 C5 C3 9E "汽車" 00

7708 * 24	 04 04 8C 01 66 C5 C3 9E "舊式辦公室" 00
7709 * 18	 04 04 8C 01 67 C5 C3 9E "辦公室" 00
7710 * 24	 04 04 8C 01 68 C5 C3 9E "新式辦公室" 00
7711 * 36	 04 04 8C 01 69 C5 C3 9E "舊式辦公室 (無月台)" 00
7712 * 30	 04 04 8C 01 6A C5 C3 9E "辦公室 (無月台)" 00
7713 * 36	 04 04 8C 01 6B C5 C3 9E "新式辦公室 (無月台)" 00
7714 * 21	 04 04 8C 01 6C C5 C3 9E "總辦公室" 00
7715 * 15	 04 04 8C 01 6D C5 C3 9E "棚屋" 00
7716 * 27	 04 04 8C 01 6E C5 C3 9E "開放式儲物棚" 00

7717 * 24	 04 04 8C 01 6F C5 C3 9E "貨運事務所" 00
7718 * 18	 04 04 8C 01 70 C5 C3 9E "大貨倉" 00
7719 * 18	 04 04 8C 01 71 C5 C3 9E "小貨倉" 00
7720 * 21	 04 04 8C 01 72 C5 C3 9E "新式貨倉" 00
7721 * 21	 04 04 8C 01 73 C5 C3 9E "紅磚貨倉" 00
7722 * 21	 04 04 8C 01 74 C5 C3 9E "儲存倉庫" 00

7723 * 24	 04 04 8C 01 75 C5 C3 9E "液體儲存庫" 00
7724 * 21	 04 04 8C 01 76 C5 C3 9E "列車車庫" 00

7725 * 30	 04 04 8C 01 77 C5 C3 9E "貨倉 (軌道後方)" 00
7726 * 30	 04 04 8C 01 78 C5 C3 9E "貨倉 (軌道前方)" 00
7727 * 30	 04 04 8C 01 79 C5 C3 9E "貨倉 (軌道兩側)" 00
7728 * 42	 04 04 8C 01 7A C5 C3 9E "以高架輸送帶連接的貨倉" 00
7729 * 42	 04 04 8C 01 7B C5 C3 9E "高架貨物輸送帶 (高月台)" 00

7730 * 21	 04 04 8C 01 82 C5 C3 9E "基本路軌" 00
7731 * 18	 04 04 8C 01 83 C5 C3 9E "小月台" 00
7732 * 18	 04 04 8C 01 84 C5 C3 9E "過路處" 00
7733 * 15	 04 04 8C 01 85 C5 C3 9E "高塔" 00
7734 * 15	 04 04 8C 01 86 C5 C3 9E "車棚" 00
7735 * 27	 04 04 8C 01 87 C5 C3 9E "轉轍器 (向北)" 00
7736 * 27	 04 04 8C 01 88 C5 C3 9E "轉轍器 (向南)" 00
7737 * 36	 04 04 8C 01 89 C5 C3 9E "機走線止衝擋 (向北)" 00
7738 * 36	 04 04 8C 01 8A C5 C3 9E "機走線止衝擋 (向南)" 00
7739 * 27	 04 04 8C 01 8B C5 C3 9E "止衝擋 (向北)" 00
7740 * 27	 04 04 8C 01 8C C5 C3 9E "止衝擋 (向南)" 00
7741 * 33	 04 04 8C 01 8D C5 C3 9E "路軌 (沒有機走線)" 00

// Station class names
7742 * 20	 04 04 8C 01 00 C4 C3 9E "ISR: 車站" 00
7743 * 29	 04 04 8C 01 12 C4 C3 9E "ISR: 基建及器械" 00
7744 * 20	 04 04 8C 01 36 C4 C3 9E "ISR: 原料" 00
7745 * 23	 04 04 8C 01 4D C4 C3 9E "ISR: 製成品" 00
7746 * 20	 04 04 8C 01 66 C4 C3 9E "ISR: 設施" 00
7747 * 23	 04 04 8C 01 82 C4 C3 9E "ISR: 調車場" 00
// Station names
7748 * 34	 04 04 A7 01 00 C5 C3 9E "Stazione per carico grano" 00
7749 * 30	 04 04 A7 01 01 C5 C3 9E "Stazione per bestiame" 00
7750 * 24	 04 04 A7 01 02 C5 C3 9E "Silos per grano" 00
7751 * 27	 04 04 A7 01 03 C5 C3 9E "Silos per minerali" 00
7752 * 44	 04 04 A7 01 04 C5 C3 9E "Dispositivo di scarico per minerali" 00
7753 * 29	 04 04 A7 01 05 C5 C3 9E "Impianti petroliferi" 00
7754 * 36	 04 04 A7 01 06 C5 C3 9E "Stazione per carico legname" 00
7755 * 35	 04 04 A7 01 07 C5 C3 9E "Stazione ad alta sicurezza" 00
7756 * 41	 04 04 A7 01 08 C5 C3 9E "Stazione di pompaggio dell'acqua" 00
7757 * 25	 04 04 A7 01 09 C5 C3 9E "Stazione merci A" 00
7758 * 25	 04 04 A7 01 0A C5 C3 9E "Stazione merci B" 00
7759 * 35	 04 04 A7 01 0E C5 C3 9E "Scalo merci per acciaieria" 00
7760 * 20	 04 04 A7 01 0C C5 C3 9E "Scalo merci" 00
7761 * 34	 04 04 A7 01 0F C5 C3 9E "Stazione per carico carta" 00
7762 * 35	 04 04 A7 01 10 C5 C3 9E "Stazione per carico frutta" 00
7763 * 34	 04 04 A7 01 11 C5 C3 9E "Stazione per carico gomma" 00
7764 * 31	 04 04 A7 01 0B C5 C3 9E "Stazione merci (bassa)" 00
7765 * 35	 04 04 A7 01 0D C5 C3 9E "Stazione per merci pesanti" 00

7766 * 31	 04 04 A7 01 12 C5 C3 9E "Banchine vuote (basse)" 00
7767 * 30	 04 04 A7 01 13 C5 C3 9E "Banchine vuote (alte)" 00
7768 * 37	 04 04 A7 01 14 C5 C3 9E "Banchine singole (da dietro)" 00
7769 * 38	 04 04 A7 01 15 C5 C3 9E "Banchine singole (dal fronte)" 00
7770 * 18	 04 04 A7 01 16 C5 C3 9E "Rampa (N)" 00
7771 * 18	 04 04 A7 01 17 C5 C3 9E "Rampa (S)" 00
7772 * 26	 04 04 A7 01 18 C5 C3 9E "Rampa singola (N)" 00
7773 * 26	 04 04 A7 01 19 C5 C3 9E "Rampa singola (S)" 00
7774 * 28	 04 04 A7 01 1C C5 C3 9E "Respingenti (bassi)" 00
7775 * 27	 04 04 A7 01 1D C5 C3 9E "Respingenti (alti)" 00
7776 * 30	 04 04 A7 01 1E C5 C3 9E "Casella vuota (bassa)" 00
7777 * 42	 04 04 A7 01 1F C5 C3 9E "Casella vuota con recinto (bassa)" 00
7778 * 29	 04 04 A7 01 20 C5 C3 9E "Casella vuota (alta)" 00
7779 * 32	 04 04 A7 01 1A C5 C3 9E "Rampa (N, senza binari)" 00
7780 * 32	 04 04 A7 01 1B C5 C3 9E "Rampa (S, senza binari)" 00

7781 * 15	 04 04 A7 01 21 C5 C3 9E "Strada" 00
7782 * 30	 04 04 A7 01 22 C5 C3 9E "Strada con recinzione" 00
7783 * 26	 04 04 A7 01 23 C5 C3 9E "Incrocio stradale" 00
7784 * 30	 04 04 A7 01 24 C5 C3 9E "Parcheggio per camion" 00
7785 * 30	 04 04 A7 01 25 C5 C3 9E "Strada d'ingresso (S)" 00
7786 * 30	 04 04 A7 01 26 C5 C3 9E "Strada d'ingresso (N)" 00
7787 * 41	 04 04 A7 01 27 C5 C3 9E "Accesso per veicoli stradali (N)" 00
7788 * 41	 04 04 A7 01 28 C5 C3 9E "Accesso per veicoli stradali (S)" 00

7789 * 26	 04 04 A7 01 29 C5 C3 9E "Torre per l'acqua" 00
7790 * 20	 04 04 A7 01 2A C5 C3 9E "Gru a torre" 00
7791 * 22	 04 04 A7 01 2B C5 C3 9E "Gru su rotaie" 00
7792 * 20	 04 04 A7 01 2C C5 C3 9E "Gru a ponte" 00

7793 * 28	 04 04 A7 01 2D C5 C3 9E "Gru a traliccio (N)" 00
7794 * 42	 04 04 A7 01 2E C5 C3 9E "Gru a traliccio (N, senza binari)" 00
7795 * 28	 04 04 A7 01 2F C5 C3 9E "Gru a traliccio (S)" 00
7796 * 42	 04 04 A7 01 30 C5 C3 9E "Gru a traliccio (S, senza binari)" 00
7797 * 42	 04 04 A7 01 31 C5 C3 9E "Gru a traliccio (N, tradizionale)" 00
7798 * 56	 04 04 A7 01 32 C5 C3 9E "Gru a traliccio (N, senza binari, tradizionale)" 00
7799 * 42	 04 04 A7 01 33 C5 C3 9E "Gru a traliccio (S, tradizionale)" 00
7800 * 56	 04 04 A7 01 34 C5 C3 9E "Gru a traliccio (S, senza binari, tradizionale)" 00
7801 * 22	 04 04 A7 01 35 C5 C3 9E "Gru cingolata" 00

7802 * 26	 04 04 A7 01 36 C5 C3 9E "Edificio agricolo" 00
7803 * 34	 04 04 A7 01 37 C5 C3 9E "Edificio agricolo piccolo" 00
7804 * 27	 04 04 A7 01 38 C5 C3 9E "Strutture agricole" 00
7805 * 27	 04 04 A7 01 39 C5 C3 9E "Cisterne per grano" 00
7806 * 27	 04 04 A7 01 3A C5 C3 9E "Cortile per maiali" 00
7807 * 26	 04 04 A7 01 3B C5 C3 9E "Moli per bestiame" 00
7808 * 27	 04 04 A7 01 3C C5 C3 9E "Cisterne per latte" 00
7809 * 31	 04 04 A7 01 3D C5 C3 9E "Capannoni per bestiame" 00
7810 * 28	 04 04 A7 01 3E C5 C3 9E "Banchine con frutta" 00
7811 * 15	 04 04 A7 01 3F C5 C3 9E "Frutta" 00

7812 * 30	 04 04 A7 01 40 C5 C3 9E "Banchine con minerali" 00
7813 * 33	 04 04 A7 01 41 C5 C3 9E "Scivolo per carico treni" 00
7814 * 33	 04 04 A7 01 42 C5 C3 9E "Nastro trasportatore (N)" 00
7815 * 33	 04 04 A7 01 43 C5 C3 9E "Nastro trasportatore (S)" 00
7816 * 25	 04 04 A7 01 44 C5 C3 9E "Pila di minerali" 00
7817 * 26	 04 04 A7 01 45 C5 C3 9E "Camion da miniera" 00
7818 * 29	 04 04 A7 01 46 C5 C3 9E "Bulldozer (minerali)" 00
7819 * 39	 04 04 A7 01 47 C5 C3 9E "Caricatore frontale (minerali)" 00

7820 * 30	 04 04 A7 01 48 C5 C3 9E "Cisterne per petrolio" 00

7821 * 29	 04 04 A7 01 49 C5 C3 9E "Banchine con legname" 00
7822 * 24	 04 04 A7 01 4A C5 C3 9E "Pila di legname" 00
7823 * 26	 04 04 A7 01 4B C5 C3 9E "Gru per i tronchi" 00
7824 * 28	 04 04 A7 01 4C C5 C3 9E "Stacker per tronchi" 00

7825 * 38	 04 04 A7 01 7E C5 C3 9E "Capannone ad alta sicurezza A" 00
7826 * 38	 04 04 A7 01 7F C5 C3 9E "Capannone ad alta sicurezza B" 00
7827 * 38	 04 04 A7 01 80 C5 C3 9E "Capannone ad alta sicurezza C" 00
7828 * 37	 04 04 A7 01 7C C5 C3 9E "Sovrappasso (banchine basse)" 00
7829 * 37	 04 04 A7 01 81 C5 C3 9E "Parcheggio ad alta sicurezza" 00
7830 * 35	 04 04 A7 01 7D C5 C3 9E "Sovrappasso (senza binari)" 00

7831 * 33	 04 04 A7 01 4D C5 C3 9E "Banchine merci generiche" 00
7832 * 41	 04 04 A7 01 4E C5 C3 9E "Banchine merci generiche (basse)" 00
7833 * 24	 04 04 A7 01 4F C5 C3 9E "Merci generiche" 00
7834 * 35	 04 04 A7 01 50 C5 C3 9E "Carrello elevatore (casse)" 00
7835 * 40	 04 04 A7 01 51 C5 C3 9E "Banchina con carrello elevatore" 00
7836 * 48	 04 04 A7 01 52 C5 C3 9E "Banchina con carrello elevatore (bassa)" 00
7837 * 31	 04 04 A7 01 53 C5 C3 9E "Banchine con container" 00
7838 * 39	 04 04 A7 01 54 C5 C3 9E "Banchine con container (basse)" 00
7839 * 26	 04 04 A7 01 55 C5 C3 9E "Container con gru" 00
7840 * 18	 04 04 A7 01 56 C5 C3 9E "Container" 00
7841 * 39	 04 04 A7 01 57 C5 C3 9E "Carrello elevatore (container)" 00
7842 * 30	 04 04 A7 01 58 C5 C3 9E "Stacker per container" 00
7843 * 22	 04 04 A7 01 59 C5 C3 9E "Reach stacker" 00
7844 * 29	 04 04 A7 01 5A C5 C3 9E "Banchine per acciaio" 00
7845 * 16	 04 04 A7 01 5B C5 C3 9E "Acciaio" 00
7846 * 26	 04 04 A7 01 5C C5 C3 9E "Banchine con rame" 00
7847 * 13	 04 04 A7 01 5D C5 C3 9E "Rame" 00
7848 * 28	 04 04 A7 01 5E C5 C3 9E "Banchine con barili" 00
7849 * 36	 04 04 A7 01 5F C5 C3 9E "Banchine con barili (basse)" 00
7850 * 15	 04 04 A7 01 60 C5 C3 9E "Barili" 00
7851 * 35	 04 04 A7 01 61 C5 C3 9E "Banchine con assi di legno" 00
7852 * 22	 04 04 A7 01 62 C5 C3 9E "Assi di legno" 00
7853 * 27	 04 04 A7 01 63 C5 C3 9E "Banchine con carta" 00
7854 * 14	 04 04 A7 01 64 C5 C3 9E "Carta" 00
7855 * 19	 04 04 A7 01 65 C5 C3 9E "Automobili" 00

7856 * 31	 04 04 A7 01 66 C5 C3 9E "Ufficio (tradizionale)" 00
7857 * 16	 04 04 A7 01 67 C5 C3 9E "Ufficio" 00
7858 * 26	 04 04 A7 01 68 C5 C3 9E "Ufficio (moderno)" 00
7859 * 38	 04 04 A7 01 69 C5 C3 9E "Ufficio (basso, tradizionale)" 00
7860 * 24	 04 04 A7 01 6A C5 C3 9E "Ufficio (basso)" 00
7861 * 33	 04 04 A7 01 6B C5 C3 9E "Ufficio (basso, moderno)" 00
7862 * 24	 04 04 A7 01 6C C5 C3 9E "Sede principale" 00
7863 * 18	 04 04 A7 01 6D C5 C3 9E "Capannoni" 00
7864 * 25	 04 04 A7 01 6E C5 C3 9E "Capannone aperto" 00

7865 * 27	 04 04 A7 01 6F C5 C3 9E "Ufficio spedizioni" 00
7866 * 25	 04 04 A7 01 70 C5 C3 9E "Magazzino grande" 00
7867 * 26	 04 04 A7 01 71 C5 C3 9E "Magazzino piccolo" 00
7868 * 26	 04 04 A7 01 72 C5 C3 9E "Magazzino moderno" 00
7869 * 29	 04 04 A7 01 73 C5 C3 9E "Magazzino in mattoni" 00
7870 * 31	 04 04 A7 01 74 C5 C3 9E "Impianto di stoccaggio" 00

7871 * 31	 04 04 A7 01 75 C5 C3 9E "Cisterne di stoccaggio" 00
7872 * 28	 04 04 A7 01 76 C5 C3 9E "Capannone per treni" 00

7873 * 35	 04 04 A7 01 77 C5 C3 9E "Edificio merci (da dietro)" 00
7874 * 36	 04 04 A7 01 78 C5 C3 9E "Edificio merci (dal fronte)" 00
7875 * 22	 04 04 A7 01 79 C5 C3 9E "Edifici merci" 00
7876 * 38	 04 04 A7 01 7A C5 C3 9E "Edifici merci con sovrappasso" 00
7877 * 36	 04 04 A7 01 7B C5 C3 9E "Sovrappasso (banchine alte)" 00

7878 * 22	 04 04 A7 01 82 C5 C3 9E "Binari spogli" 00
7879 * 19	 04 04 A7 01 83 C5 C3 9E "Passerella" 00
7880 * 21	 04 04 A7 01 84 C5 C3 9E "Intersezione" 00
7881 * 14	 04 04 A7 01 85 C5 C3 9E "Torre" 00
7882 * 16	 04 04 A7 01 86 C5 C3 9E "Rifugio" 00
7883 * 20	 04 04 A7 01 87 C5 C3 9E "Scambio (N)" 00
7884 * 20	 04 04 A7 01 88 C5 C3 9E "Scambio (S)" 00
7885 * 34	 04 04 A7 01 89 C5 C3 9E "Respingenti intermedi (N)" 00
7886 * 34	 04 04 A7 01 8A C5 C3 9E "Respingenti intermedi (S)" 00
7887 * 24	 04 04 A7 01 8B C5 C3 9E "Respingenti (N)" 00
7888 * 24	 04 04 A7 01 8C C5 C3 9E "Respingenti (S)" 00
7889 * 37	 04 04 A7 01 8D C5 C3 9E "Binari senza rotaia centrale" 00

// Station class names
7890 * 22	 04 04 A7 01 00 C4 C3 9E "ISR: Stazioni" 00
7891 * 27	 04 04 A7 01 12 C4 C3 9E "ISR: Installazioni" 00
7892 * 27	 04 04 A7 01 36 C4 C3 9E "ISR: Materie prime" 00
7893 * 35	 04 04 A7 01 4D C4 C3 9E "ISR: Prodotti semilavorati" 00
7894 * 23	 04 04 A7 01 66 C4 C3 9E "ISR: Strutture" 00
7895 * 25	 04 04 A7 01 82 C4 C3 9E "ISR: Smistamento" 00
// Station names
7896 * 36	 04 04 A2 01 00 C5 C3 9E "Estació per a carregar gra" 00
7897 * 31	 04 04 A2 01 01 C5 C3 9E "Estació per a bestiar" 00
7898 * 21	 04 04 A2 01 02 C5 C3 9E "Sitja de gra" 00
7899 * 26	 04 04 A2 01 03 C5 C3 9E "Sitja de minerals" 00
7900 * 34	 04 04 A2 01 04 C5 C3 9E "Descarregador de minerals" 00
7901 * 38	 04 04 A2 01 05 C5 C3 9E "Instal·lacions petrolíferes" 00
7902 * 38	 04 04 A2 01 06 C5 C3 9E "Estació per a carregar fusta" 00
7903 * 34	 04 04 A2 01 07 C5 C3 9E "Estació d'alta seguretat" 00
7904 * 36	 04 04 A2 01 08 C5 C3 9E "Estació de bombeig d'aigua" 00
7905 * 37	 04 04 A2 01 09 C5 C3 9E "Estació per a mercaderies A" 00
7906 * 37	 04 04 A2 01 0A C5 C3 9E "Estació per a mercaderies B" 00
7907 * 40	 04 04 A2 01 0E C5 C3 9E "Estació de planta siderúrgica" 00
7908 * 34	 04 04 A2 01 0C C5 C3 9E "Estació per a càrregues" 00
7909 * 36	 04 04 A2 01 0F C5 C3 9E "Estació per carregar paper" 00
7910 * 37	 04 04 A2 01 10 C5 C3 9E "Estació per carregar fruita" 00
7911 * 38	 04 04 A2 01 11 C5 C3 9E "Estació per carregar cautxú" 00
7912 * 43	 04 04 A2 01 0B C5 C3 9E "Estació per a mercaderies (baixa)" 00
7913 * 39	 04 04 A2 01 0D C5 C3 9E "Estació de càrregues pesants" 00

7914 * 32	 04 04 A2 01 12 C5 C3 9E "Andanes buides (baixes)" 00
7915 * 31	 04 04 A2 01 13 C5 C3 9E "Andanes buides (altes)" 00
7916 * 42	 04 04 A2 01 14 C5 C3 9E "Andanes d'un sol costat (darrera)" 00
7917 * 41	 04 04 A2 01 15 C5 C3 9E "Andanes d'un sol costat (davant)" 00
7918 * 18	 04 04 A2 01 16 C5 C3 9E "Rampa (N)" 00
7919 * 18	 04 04 A2 01 17 C5 C3 9E "Rampa (S)" 00
7920 * 34	 04 04 A2 01 18 C5 C3 9E "Rampa d'un sol costat (N)" 00
7921 * 34	 04 04 A2 01 19 C5 C3 9E "Rampa d'un sol costat (N)" 00
7922 * 25	 04 04 A2 01 1C C5 C3 9E "Topalls (baixos)" 00
7923 * 23	 04 04 A2 01 1D C5 C3 9E "Topalls (alts)" 00
7924 * 30	 04 04 A2 01 1E C5 C3 9E "Casella buida (baixa)" 00
7925 * 40	 04 04 A2 01 1F C5 C3 9E "Casella buida amb tanca (baixa)" 00
7926 * 29	 04 04 A2 01 20 C5 C3 9E "Casella buida (alta)" 00
7927 * 29	 04 04 A2 01 1A C5 C3 9E "Rampa (N, sense via)" 00
7928 * 29	 04 04 A2 01 1B C5 C3 9E "Rampa (S, sense via)" 00

7929 * 18	 04 04 A2 01 21 C5 C3 9E "Carretera" 00
7930 * 28	 04 04 A2 01 22 C5 C3 9E "Carretera amb tanca" 00
7931 * 17	 04 04 A2 01 23 C5 C3 9E "Cruïlla" 00
7932 * 30	 04 04 A2 01 24 C5 C3 9E "Aparcament de camions" 00
7933 * 33	 04 04 A2 01 25 C5 C3 9E "Entrada de carretera (S)" 00
7934 * 33	 04 04 A2 01 26 C5 C3 9E "Entrada de carretera (N)" 00
7935 * 44	 04 04 A2 01 27 C5 C3 9E "Accés de vehicles de carretera (N)" 00
7936 * 44	 04 04 A2 01 28 C5 C3 9E "Accés de vehicles de carretera (S)" 00

7937 * 22	 04 04 A2 01 29 C5 C3 9E "Torre d'aigua" 00
7938 * 19	 04 04 A2 01 2A C5 C3 9E "Grua torre" 00
7939 * 24	 04 04 A2 01 2B C5 C3 9E "Grua sobre vies" 00
7940 * 21	 04 04 A2 01 2C C5 C3 9E "Grua elevada" 00

7941 * 25	 04 04 A2 01 2D C5 C3 9E "Grua pòrtic (N)" 00
7942 * 36	 04 04 A2 01 2E C5 C3 9E "Grua pòrtic (N, sense via)" 00
7943 * 25	 04 04 A2 01 2F C5 C3 9E "Grua pòrtic (S)" 00
7944 * 36	 04 04 A2 01 30 C5 C3 9E "Grua pòrtic (S, sense via)" 00
7945 * 36	 04 04 A2 01 31 C5 C3 9E "Grua pòrtic (N, clàssica)" 00
7946 * 47	 04 04 A2 01 32 C5 C3 9E "Grua pòrtic (N, sense via, clàssica)" 00
7947 * 36	 04 04 A2 01 33 C5 C3 9E "Grua pòrtic (S, clàssica)" 00
7948 * 47	 04 04 A2 01 34 C5 C3 9E "Grua pòrtic (S, sense via, clàssica)" 00
7949 * 20	 04 04 A2 01 35 C5 C3 9E "Grua mòbil" 00

7950 * 26	 04 04 A2 01 36 C5 C3 9E "Edifici de granja" 00
7951 * 32	 04 04 A2 01 37 C5 C3 9E "Petit edifici de granja" 00
7952 * 34	 04 04 A2 01 38 C5 C3 9E "Instal·lacions de granja" 00
7953 * 14	 04 04 A2 01 39 C5 C3 9E "Sitja" 00
7954 * 24	 04 04 A2 01 3A C5 C3 9E "Corral de porcs" 00
7955 * 28	 04 04 A2 01 3B C5 C3 9E "Ports per a bestiar" 00
7956 * 26	 04 04 A2 01 3C C5 C3 9E "Cisternes de llet" 00
7957 * 30	 04 04 A2 01 3D C5 C3 9E "Coberts per a bestiar" 00
7958 * 29	 04 04 A2 01 3E C5 C3 9E "Andanes per a fruita" 00
7959 * 15	 04 04 A2 01 3F C5 C3 9E "Fruita" 00

7960 * 28	 04 04 A2 01 40 C5 C3 9E "Andanes de minerals" 00
7961 * 33	 04 04 A2 01 41 C5 C3 9E "Rampa per carregar trens" 00
7962 * 33	 04 04 A2 01 42 C5 C3 9E "Cinta transportadora (N)" 00
7963 * 33	 04 04 A2 01 43 C5 C3 9E "Cinta transportadora (N)" 00
7964 * 25	 04 04 A2 01 44 C5 C3 9E "Pila de minerals" 00
7965 * 21	 04 04 A2 01 45 C5 C3 9E "Camió miner" 00
7966 * 30	 04 04 A2 01 46 C5 C3 9E "Excavadora (minerals)" 00
7967 * 38	 04 04 A2 01 47 C5 C3 9E "Carregador frontal (minerals)" 00

7968 * 46	 04 04 A2 01 48 C5 C3 9E "Cisternes d'emmagatzematge de petroli" 00

7969 * 28	 04 04 A2 01 49 C5 C3 9E "Andanes per a fusta" 00
7970 * 22	 04 04 A2 01 4A C5 C3 9E "Pila de fusta" 00
7971 * 31	 04 04 A2 01 4B C5 C3 9E "Estibador per a troncs" 00
7972 * 28	 04 04 A2 01 4C C5 C3 9E "Apiladora de troncs" 00

7973 * 34	 04 04 A2 01 7E C5 C3 9E "Cobert A d'alta seguretat" 00
7974 * 34	 04 04 A2 01 7F C5 C3 9E "Cobert B d'alta seguretat" 00
7975 * 34	 04 04 A2 01 80 C5 C3 9E "Cobert C d'alta seguretat" 00
7976 * 36	 04 04 A2 01 7C C5 C3 9E "Pas elevat (andanes baixes)" 00
7977 * 36	 04 04 A2 01 81 C5 C3 9E "Aparcament d'alta seguretat" 00
7978 * 31	 04 04 A2 01 7D C5 C3 9E "Pas elevat (sense via)" 00

7979 * 39	 04 04 A2 01 4D C5 C3 9E "Andanes per a càrrega general" 00
7980 * 48	 04 04 A2 01 4E C5 C3 9E "Andanes per a càrrega general (baixes)" 00
7981 * 25	 04 04 A2 01 4F C5 C3 9E "Càrrega general" 00
7982 * 33	 04 04 A2 01 50 C5 C3 9E "Muntacàrregues (caixes)" 00
7983 * 35	 04 04 A2 01 51 C5 C3 9E "Andana amb muntacàrregues" 00
7984 * 43	 04 04 A2 01 52 C5 C3 9E "Andana amb muntacàrregues (baixa)" 00
7985 * 34	 04 04 A2 01 53 C5 C3 9E "Andanes per a contenidors" 00
7986 * 43	 04 04 A2 01 54 C5 C3 9E "Andanes per a contenidors (baixes)" 00
7987 * 29	 04 04 A2 01 55 C5 C3 9E "Contenidors amb grua" 00
7988 * 20	 04 04 A2 01 56 C5 C3 9E "Contenidors" 00
7989 * 38	 04 04 A2 01 57 C5 C3 9E "Muntacàrregues (contenidors)" 00
7990 * 33	 04 04 A2 01 58 C5 C3 9E "Apiladora de contenidors" 00
7991 * 18	 04 04 A2 01 59 C5 C3 9E "Apiladora" 00
7992 * 27	 04 04 A2 01 5A C5 C3 9E "Andanes per a acer" 00
7993 * 13	 04 04 A2 01 5B C5 C3 9E "Acer" 00
7994 * 28	 04 04 A2 01 5C C5 C3 9E "Andanes per a coure" 00
7995 * 14	 04 04 A2 01 5D C5 C3 9E "Coure" 00
7996 * 30	 04 04 A2 01 5E C5 C3 9E "Andanes per a barrils" 00
7997 * 39	 04 04 A2 01 5F C5 C3 9E "Andanes per a barrils (baixes)" 00
7998 * 16	 04 04 A2 01 60 C5 C3 9E "Barrils" 00
7999 * 28	 04 04 A2 01 61 C5 C3 9E "Andanes per a fusta" 00
8000 * 14	 04 04 A2 01 62 C5 C3 9E "Fusta" 00
8001 * 28	 04 04 A2 01 63 C5 C3 9E "Andanes per a paper" 00
8002 * 14	 04 04 A2 01 64 C5 C3 9E "Paper" 00
8003 * 15	 04 04 A2 01 65 C5 C3 9E "Cotxes" 00

8004 * 28	 04 04 A2 01 66 C5 C3 9E "Oficina (clàssica)" 00
8005 * 16	 04 04 A2 01 67 C5 C3 9E "Oficina" 00
8006 * 26	 04 04 A2 01 68 C5 C3 9E "Oficina (moderna)" 00
8007 * 35	 04 04 A2 01 69 C5 C3 9E "Oficina (baixa, clàssica)" 00
8008 * 24	 04 04 A2 01 6A C5 C3 9E "Oficina (baixa)" 00
8009 * 33	 04 04 A2 01 6B C5 C3 9E "Oficina (baixa, moderna)" 00
8010 * 26	 04 04 A2 01 6C C5 C3 9E "Oficina principal" 00
8011 * 16	 04 04 A2 01 6D C5 C3 9E "Coberts" 00
8012 * 42	 04 04 A2 01 6E C5 C3 9E "Cobert obert per a emmagatzematge" 00

8013 * 29	 04 04 A2 01 6F C5 C3 9E "Oficina d'enviaments" 00
8014 * 22	 04 04 A2 01 70 C5 C3 9E "Magatzem gran" 00
8015 * 23	 04 04 A2 01 71 C5 C3 9E "Magatzem petit" 00
8016 * 24	 04 04 A2 01 72 C5 C3 9E "Magatzem modern" 00
8017 * 26	 04 04 A2 01 73 C5 C3 9E "Magatzem de maons" 00
8018 * 34	 04 04 A2 01 74 C5 C3 9E "Dipòsit d'emmagatzematge" 00

8019 * 35	 04 04 A2 01 75 C5 C3 9E "Cisternes d'emmagatzematge" 00
8020 * 27	 04 04 A2 01 76 C5 C3 9E "Cobert per a trens" 00

8021 * 44	 04 04 A2 01 77 C5 C3 9E "Edifici per a mercaderies (darrera)" 00
8022 * 43	 04 04 A2 01 78 C5 C3 9E "Edifici per a mercaderies (davant)" 00
8023 * 35	 04 04 A2 01 79 C5 C3 9E "Edificis per a mercaderies" 00
8024 * 50	 04 04 A2 01 7A C5 C3 9E "Edificis per a mercaderies amb pas elevat" 00
8025 * 35	 04 04 A2 01 7B C5 C3 9E "Pas elevat (andanes altes)" 00

8026 * 20	 04 04 A2 01 82 C5 C3 9E "Via bàsica" 00
8027 * 21	 04 04 A2 01 83 C5 C3 9E "Passarel·la" 00
8028 * 20	 04 04 A2 01 84 C5 C3 9E "Encreuament" 00
8029 * 14	 04 04 A2 01 85 C5 C3 9E "Torre" 00
8030 * 15	 04 04 A2 01 86 C5 C3 9E "Refugi" 00
8031 * 31	 04 04 A2 01 87 C5 C3 9E "Commutador de vies (N)" 00
8032 * 31	 04 04 A2 01 88 C5 C3 9E "Commutador de vies (S)" 00
8033 * 28	 04 04 A2 01 89 C5 C3 9E "Topalls mitjans (N)" 00
8034 * 28	 04 04 A2 01 8A C5 C3 9E "Topalls mitjans (S)" 00
8035 * 19	 04 04 A2 01 8B C5 C3 9E "Topall (N)" 00
8036 * 19	 04 04 A2 01 8C C5 C3 9E "Topall (S)" 00
8037 * 30	 04 04 A2 01 8D C5 C3 9E "Via sense rail al mig" 00

// Station class names
8038 * 23	 04 04 A2 01 00 C4 C3 9E "ISR: Estacions" 00
8039 * 30	 04 04 A2 01 12 C4 C3 9E "ISR: Infraestructures" 00
8040 * 32	 04 04 A2 01 36 C4 C3 9E "ISR: Matèries primeres" 00
8041 * 34	 04 04 A2 01 4D C4 C3 9E "ISR: Productes processats" 00
8042 * 29	 04 04 A2 01 66 C4 C3 9E "ISR: Instal·lacions" 00
8043 * 44	 04 04 A2 01 82 C4 C3 9E "ISR: Dipòsits de trens de càrrega" 00

8044 * 2	 10 F0