Smoke in Simutrans is a good idea. Buildings are generally static, but if a factory is producing, it indicated that by a two-frame animation of smoke up the chimney - or similar two-frame-animation.
However, the good idea is kind of ruined by other advances Simutrans made, most importantly animation with no frame limit. With that, it's possible to have, say, an animated oilpump. Even smoke is sometimes better done as an animated frontimage - simply because there might be several chimneys, and you can only have one smoke per factory defined. Furthermore, Smoke is limited to factories only, while any building can have frontimages and animation, so using those is more consistent in the creation process.
There are still advantages to smoke - it is easier to use the same smoke in several buildings, and if it is reused, storage space in the pak format is smaller (since references are used, rather than the same thing stored individually for each building) And, of course, it's still the only thing that can be shown only if a factory works.
On that basis, I want to suggest the following changes:1.) A new parameter "animate_when_active"
A parameter for factories, which is usually set to 0. However, if set to 1, the animation of the factory is frozen to the first frame as long as it is not productive.
Essentially, this enables animation to replace smoke as an indicator whether a factory is actually producing. Smoke can only add to a building,which would not work with the aforementioned oilpump, which would need to be visible at all time.2.) No smoke-frame-limit
Currently, smoke only has two frames, which to me is the most important reason why I would not use it, except maybe for some blinking lights. If that was changed, I could see using it for several animations I currently use frontimages for. But there could be more:3.) Enable smoke for all buildings
This is about smokes second ability: It is a graphic that's only referenced, not actually put in a pak-file. Most obviously, my endeavour to give most residential buildings some animated smoke in winter would greatly profit from such a possibility (if either the building or the smoke itself can be restricted to snowy winter). But I guess there are many small additions one could put in a smoke image just to have some tiny movements here and there.
Say, a smoke image with a hundred empty frames, and then a mole looks up through the floor. Could be places anywhere with some open ground, thus why not place it in several different buildings?4.) More then one smoke per building
Most obviously, this would be nice if you have four chimneys on your coal power plant, so you could place a smoke on each. But also considering potential season-related animations (winter smoke of buildings) or rarely visible animations (mole from the ground) at some point, you would want to add some of them together.5.) Allow the user to disable smoke
Now all these smoke-related animations are nothing but eyecandy, right? Nothing that is really needed, but could affect performance, so why do that to older computers? Well, usually there is no choice. You could hardly create a function to "disable all frontimages", since that would plainly be terrible. Stopping all animations, while working, is not ideal - imagine all these houses in winter with static smoke at their chimney. No smoke at all would be better, right? That means I either create it for nicer graphics on better PCs, or I don't, for the sake of older ones.
Now, smoke is a bit different. As said, in contrast to building animation, smoke only adds stuff to a building that already works without it. And that's how it should be: If a smoke reference is not found, it should not be replaced (nobody wants the mole to look out of the chimney), and the building should still be good, if not quite great. This is true for current smoke as well, obviously, since if not producing, factories won't have it.
So if it was disabled by the player, the gameplay would not change at all, just the graphics would not be quite as nice. And not all animation is lost - oilpumps would still pump on