OzTransLtd wrote:Tile type, set through CB 24 and Tile ID (my name), set through CB 14, are 2 totally different things.
No, they're exactly the same thing, but one is stored (callback 24), and one is dynamic (callback 14).
OzTransLtd wrote:The Tile ID will give you an index into the station layout table (property 09), wheras the tile type will only allow you to build 'Default' station type layouts within narrow limits.
Actually, they both give you an index into the station layout table, but the result of callback 24 (or property 0E) is the only one stored in the station structure when the station is built. This is the reason that callback 24 is limited to only 8 layouts, because you can't store more persistently.
Callback 14 is used every time the station is drawn (in TTDPatch as well, by the way - it's called as part of getnewstationsprite in statspri.asm), and this overrides the value stored in the station structure from when it was built. This is why you can use more than 8 layouts with this callback, as the results are never stored.
OzTransLtd wrote:That is probably a little bit excessive and burns CPU cycles unnecessarily. CB 14 needs to be called (for every tile in the station complex), only when the player builds/modifies station tiles; plus during CB 140 execution, so that the tile ID can be set in relation to the current animation frame.
It might be a bit excessive, but it does give you more flexibility - you can use a different sprite layout depending on the time of year, for example.
