Two ways to to use sprites in a base set. It looks like you are trying to use the first but are getting confused with the second. The second is easier in my opinion.
1. Extract the sprites from the base set, define them in an Action 1 and refer to them in the station layout (Act 0 Prop09).
2. Reference the sprites. This means that you don't include them in an Action 1 but instead you modify the sprite number in Property 09 so that some base set sprites are used.
Instead of the following: (fill in the stuff in <> with relevant code)
Code: Select all
<Action 0> // define properties for one station
09 02 // layouts: draw a ground sprite and a sprite from action 1
<groundsprite> <offsets> <sizes>
2D 04 00 00 80 // do not set bit 31
<groundsprite> <offsets> <sizes>
2E 04 00 00 80 // do not set bit 31
<Action 1> // define some coal mine sprites taken from the base set
<Action 2> // define a graphics set
<Action 3> // link graphics set to station
You can use
Code: Select all
<Action 0> // define properties for one station
09 02 // layouts: draw a ground sprite and a coal mine sprite from base set
<groundsprite> <offsets> <sizes>
2D 04 00 80 80
<groundsprite> <offsets> <sizes>
2E 04 00 80 80
<Action 1> // define an empty sprite
<Action 2> // define a graphics set
<Action 3> // link graphics set to station
You need the empty sprite in the second example because an Action 3 requires an Action 2 which requires *a sprite* of some form. Therefore draw a sprite which is just
magic blue and define it in your action 1. Without an Action 3, your stations will not show up in the build menu.
The following should work. I haven't tested it.
Code: Select all
// Action 0 : define station properties
2 * 82 00 04
07 01 00
08 "IST1"
0C FE
0D FE
11 00
14 FF
15 FF
09 02 // define 2 layouts. Each layout draws a grassy ground sprite,
// a coal mine sprite and an empty overlay sprite
1D 08 00 00 // ground sprite : draw sprite 2077 = 0x81D
00 00 80 00 00 00 DD 07 00 80 // draw base set sprite 2013 = 0x7DD !important: set bit 31
00 00 00 0F 0F 00 2D 04 00 00 80 // draw first sprite in Action 1 = some "empty" sprite
1D 08 00 00 // ground sprite : draw base set sprite 2077 = 0x81D
00 00 80 00 00 00 E5 07 00 80 // draw sprite 2021 = 0x7E5 !important: set bit 31
00 00 00 0F 0F 00 2E 04 00 00 80 // draw second sprite in Action 1 = some "empty" sprite
// Action 1 : define some sprites
10 * 4 01 04 01 02
11 sprites/Station_Tiles.pcx 10 10 01 01 01 0 0 // this is a one pixel sprite containing "magic blue"
12 sprites/Station_Tiles.pcx 10 10 01 01 01 0 0 // this is the same sprite,
// but it has to be defined twice because stations need two sprites per set,
// one for each orientation
// Action 2 : define a graphics set
13 * 7 02 04 00 00 01 00 00
// Action 3 : link graphics to station
14 * 7 03 04 01 00 00 00 00
If you use that code, and in general, I suggest running it through
NFORenum to fix line numbers and flag up broken stuff.