I hadn't really read most of this thread until today because I don't really care personally how this is implemented. I'm not saying how people feel about this is irrelevant, but which implementation anyone prefers, is. Since we've established the OpenMW implementation does in fact deviate from Vanilla, there's really only one question that needs to be answered. Is the cleanliness of the code worth the deviation?
I don't know where the original post is, but in our old FAQs we had a quote from Zini about project decisions:
Zini wrote:
First I don’t feel any obligation to copy any non-functional behaviour. There is absolutely no point to mimic a crash or any other kind of failure mode. There is also no point in mimicking limits (like the if-then nesting depth limits in scripts), if an implementation without these limits isn’t more work.
Generally with anything that does not work at all in Morrowind we have complete freedom in deciding how to handle it. Note that this does not include any bad game mechanics. Bad is not equal disfunctional.
Second, we can change anything that is not part of the in-game experience, e.g. the commandline options and the configuration files for OpenMW look completely different from what Morrowind is using. The launcher is another example for this case.
Third, we are not obliged to choose the same implementation path as Morrowind (where we know or can guess what MW is doing). It still should look the same to the player, but what is under the hood can look completely different.
And finally fourth, there are a few edge cases where we actually might diverge slightly from Morrowind on purpose, when it makes the implementation a lot easier or a perfect copy is a clear no go, because something has absolutely no future and a perfect copy would mean we would have to rip out the whole thing after 1.0 and reimplement the part from scratch.
In general I would agree with Wareya that this clearly falls under the first category of bad mechanics, but not dysfunctional. Bethesda clearly intended this behavior.
If this were only ever going to be a Morrowind engine, I think the answer would perhaps more clearly point towards using Vanilla behavior.. However, since this is meant to be a general purpose engine, having a single case exception to an otherwise universal rule seems kind of batshit. It's not like programming the Vanilla behavior would be particularly hard, but this still seems like something that would fall under the fourth section, because a perfect copy makes things unnecessarily sloppy and would have to be ripped out post-1.0.
Still, the vast majority of people playing, at least for now, will be playing Morrowind. The deviation is also not insignificant. At this point in the logic process, I'd say there should be a toggle so people can choose. However, this is not much better, because this should still be removed post-1.0 for generalizing the engine. Furthermore, the fact that a ready-made mod exists that restores Vanilla behavior, I think, seals the deal.
Our paradigm has always been, if it can be put in a mod rather than built into the engine, it should be. Normally this is for functionality the other way around, to allow non-Vanilla behavior. But having sloppier code to then mod around in a more roundabout way just to achieve what simpler code would in the first place, makes this seem like the more logical method.
The only possibility I can still see for needing Vanilla behavior is the point Wareya brought up about existing mods being compatible. Unless anyone can actually think of any mods that do this or why a mod would, I see no reason to let this veto the current behavior. Generally if a mod is going to conflict with birthsigns, it's because they didn't like the Vanilla implementation, sooooo...
I do think any deviation such as this should be well documented, with our reason why and a solution linked to (in this case a link to the mod) for those who want to maintain the total Vanilla experience.