It sounds very promising. If scenario authors are sensible about selections (and understand the selection rules) and if some industries are designed so that some cargoes actually can be disabled while still having a viable scenario, then it should be possible to have the full 60 cargo slots set up in the editor.
I'll set something up and give it a good test run. I'm kinda in the mood for testing a few weird things at the moment.
Brilliant! Yes, that makes perfect sense. Got it in one.PS. Don't really understand it, but I found a quote about the flatbed cars here by Milo. Not sure if it's anything?
The byte he's referring to is #32 in the cargo's .cty file. I just checked, and that has a value of 00 for Alcohol, which comes in boxcars with an icon on the side. It has a value of 04 for Steel, which comes on a flatcar, and a value of 0A (10 in decimal) for Iron, which comes in an open hopper.
This is muchly splendiferously awesomesauce. It should mean that by changing the values for Goods and Rubber to 00, I should be able to get those cargoes (or any other cargoes) showing their correct cargo icons when they are in my custom boxcars. I'll definitely test this, as I can see it being very handy. (Just tested, and it works.)
Edit: Although I still have my doubts if that will affect how things display inside CarSideView_1, because that may rely on some other extra trickery. It suspect that will always be locked to the four default eras and four default icons on that image. Still, it will be useful for flatcar cargoes that I want in boxcars.
Anyway, checked out the .cty file thing. It works like this:
00 at .cty byte 32 means normal cargo icon on side of car.
---------------------------------------------------------------------
01 to 08 inclusive define various default flatcar cargoes.
---------------------------------------------------------------------
01 is Lumber (but CargoModel ID for Lumber is 02).
02 is Weapons (but CargoModel ID for Weapons is 03).
03 is Goods (but CargoModel ID for Goods is 04).
04 is Steel (but CargoModel ID for Steel is 05).
05 is Rubber (but CargoModel ID for Rubber is 06).
06 is Aluminum (but CargoModel ID for Aluminum is 07).
07 is Uranium (but CargoModel ID for Uranium is 08).
08 is Logs (but CargoModel ID for Logs is 09).
---------------------------------------------------------------------
09 to 0B inclusive define various default open hopper cargoes.
---------------------------------------------------------------------
09 is Coal (CargoModel ID is 0A, or 10 in decimal).
0A is Iron (CargoModel ID is 0B, or 11 in decimal).
0B is Bauxite (CargoModel ID is 0C, or 12 in decimal).
The CargoModel ID numbers being (.cty byte 32)+1 is clear, and explains something I knew about but didn't know the reason for. The CargoModels don't use the 00 or 01 identifiers for any cargoes. It makes sense now, because the scale has to start at 01 + 1 = 2. Which is where it does start, with Lumber calling CargoModel02.3dp and going on from there for the other cargoes.
This is interesting, because it opens up the possibility of calling some of the default CargoModel slots for non-standard cargoes. WP&P's old pulpwood car already does this, by hijacking the default Goods cargo model and profile icon.
I just checked a copy of his car that I had lying around. It uses the default Goods value of 03 in the .cty file, so it appears that somehow WP&P figured this out. That .cty byte 32 obviously allows Pulpwood to call the default Goods icon in CarSideView and the default Goods CargoModel04.3dp, both of which WP&P then edited to turn them into Pulpwood loads.
Unlike most of his custom cars, his Pulpwood flats only have four eras. This implies that he couldn't get the profile icons working with custom eras while using CarSideView_1.imb as the source. He didn't mess with any other flatcar cargoes, so I think he ran into trouble there and then moved on to other things. But with what we know now, obviously there is more scope for custom shenanigans. You just have to define your own icons with another .imb file.