As many have probably seen, it's currently not possible (for ZDoom) to have a weapon-specific (i.e. Decorate-controlled) zoom function. Other such suggestions have been rejected in the past, but I think it might be doable this way:
where
int can range from 0 to 2, as a multiplier of the user's current FOV setting. So for example, if a weapon were to call A_ZoomLevel(0.5), this would adjust the current FOV to half, so a user at FOV 90 would now be seeing at FOV 45, and a user who prefers FOV 110 would now see FOV 55. You could also fish-eye the view by setting a multiplier above 1 (1.75, for example, would result in a very distorted view).
A proper zoom function like this one would probably be much cleaner than an alias, much simpler than the camera texture hack (that no longer works, evidently due to some changes in the Textures code), and wouldn't overwrite the user's INI settings.
Of course I have no idea what the consequences would be of attempting to A_ZoomLevel to 0 - perhaps a solid minimum should be enforced, like 0.01?