Been thinking some more. The problem with having individual cars for each cargo is that which ones you want to be noticeable will depend on the scenario haulage goals. That means there's probably not much point going for a complex colour coding or anything like that, because it will be hard to remember. However, you could do something like this:
It's a bit over the top on A era boxcars, but would be fine from C or D onwards, and it wouldn't be hard to make the A era icons a bit bigger anyway.
Splitting all of the 1.05 and 1.06 cargoes into individual cars for each cargo is not difficult, but it means
a lot of extra files sitting in game folders. Each double car generally has a .car and a .cgo and a .cct, as well as a _Body.3dp, _Truck1.3dp, _Truck2.3dp, _Truck1Bogie1.3dp through to _Truck1Bogie4.3dp, _Bogie1.3dp through to _Bogie8.3dp, _Truck2Bogie1.3dp through to _Truck2Bogie4.3dp, _LengthPoint.3dp and _TrackPoint.3dp, _Profile_A.dds, _Profile.imb, plus _A.dds through to _F.dds skin images.
Some of these obviously exist anyway, but if we were to split all cargoes out to their own car type (which is generally where all of these mod packs always seem to end up heading) that would be an extra 22 car types in 1.05, and an extra 30 in 1.06. That means an extra 44 files in EngineTypes and an extra 650-ish in PopTopExtraContent for 1.05, while 1.06 would have an extra 60 files in EngineTypes and an extra 850-ish in PopTopExtraContent.
Obviously they all have to be processed by the game engine in real time, but that may or may not cause performance issues. It would have to be done and tested before we would know. 850 extra files does seem like a lot though.
Offhand I don't know if different car types can call the same .3dp and .dds files. I vaguely recall some difficulties there but haven't tested it for ages. If we could get away with calling the same .3dp and skin image for every boxcar cargo, that would make this cunning scheme much more workable. Then you'd only have to worry about .cgo, .car, .cct, and _Profile.imb for each cargo.
Edit: Just ran a quick test. I split Alcohol out to its own special reefers (already had this set up for my own use) with its own profile icons. Then I edited the xAlcohol-.car files to call xReefer-.3dp and xReefer-.dds, but left the .lco and Profile.imb calls as xAlcohol-.
The result was amusing. What it does is call the correct car models, but the wrong profile icons sometimes. For some reason (dunno why yet) although both Alcohol and Milk will now load in the standard reefer for the era when you're looking at a train on the tracks, the call for xAlcohol_Profile.imb is overriding the call for xReefer_Profile.imb, with the result that when you are looking at your train list, a train hauling milk (or any other non-Alcohol reefer cargo) with be displaying the icon for the custom Alcohol reefers. This is a PITA, because the profile icons are what is really needed.
It's not a case of the last file overriding previous ones, because xReefer comes after xAlcohol. It may be a case of the first file setting the Profile.imb for any subsequent files that call the same .3dp or .dds, which would be bonkers, but not any more bonkers than umpteen other things this game does.
It may be possible to work around this by setting up a custom equivalent of the default CarSideView_1.imb. That would just be a custom .dds that holds icons for all the possible reefer cargoes and eras, with the right one for that cargo and era being called by the byte that usually does the same job for CarSideView_1. If that works it would be a reasonable option. It would not be hard to set up, so I'll test it later.
(I did try not setting the .lco as xAlcohol-, and leaving that at xReefer- too, but what that does is make the train haul empty flat cars. They are still the right cargo internally, but visually it's just empty flats.)
Edit again: Ran some more tests. Looks like it's a no go.
I made up a custom .imb that allows icons for a range of cargo cars, the same way the default CarSideView_1 is done. It's not hard to set up, and generally it works, but there's still the same problem with the Alcohol icon overriding generic one, even though they are both called from the same DDS now and even though they (should) call different chunks of the DDS.
As far as I can tell, if you have a number of different cargo cars calling the same .3dp and .dds it will work, but the first .car file to call that .3dp and .dds will also define which profile icon is called for all of them in that era. There doesn't seem to be any way around this. So yes, it's RT3 and it's bonkers. Hey ho.
At least I know for sure now. To work reliably, splitting out cargoes to their own car type has to be done the long way, with a complete file set for each separate cargo. No short cuts available.
![thumbs_down !*th_dwn*!](./images/smilies/not_ok.gif)