Well, how timely is THIS thread?
..just what I needed. Okay here goes. Sorry for the length....
Folks, without outside prompting, I admit I have already done the unthinkable and gone where angels fear to tread. Yes, in trying to fix what isn't seriously broken, I tried fashioning a revamped version of GCD. I call it 'GCD Lean'.
In hopes of resolving the aforementioned quirks with a more efficient, error-free, logic-driven package, it has, to date, failed. I shall elaborate.
You see, I have embarked on a rather insane project which is of a ridiculously large scope. It has the working title of 'Morrowind Amalgamated' and, as you might guess from the name, attempts to bundle the best of Morrowind mods into a single package. More announcements about it should be made in the forthcoming weeks (if I don't starve in the meantime). You heard it here first, but the point is, in order for such a behemoth to have any chance of operating, I figure that every object, every dialogue entry, AND every script has to be cut to the core. To that end, part of what I occupy my time with is what I call 'script tightening'. It involves removal of comments, removal of excess whitespace, error correction, renaming of scripts and variables in accordance with a sophisticated Name Scheme I devised and, of course, testing as much as time will allow. I have done this to success on dozens if not hundreds of scripts already, (even some of yours abot), and I believe I have been vindicated in my approach when, in several nail-biting situations, I find to my amazement that my super mods do actually run, and perhaps run a little better owing to the tightening treatment. That's been true in all cases...except one.
Yes, GCD has left me curled up in a fetal position, lying in the corner and whimpering like a distraught puppy. It has taken two weeks of my life, crunched them up in a little ball and tossed them over its shoulder. It has become my Last Stand, my Waterloo, and my Stalingrad. I fear it will be the thing in Morrowind that actually DOES kill me. With that in mind, here is the work I have done on it thus far:
----
- ran each script through MWSE script editor and formatted
- used the MWSE editor to remove all indentation
- manually checked for trailing whitespace and further removed whitespace by vertically bunching some blocks, mostly variable declarations
- applied fixes to all errors discovered. I believe this covers all the errors mentioned earlier in this thread
(spaces removed around 'fixes', most commas removed, extra 'endifs' commented out, MenuTest given 0, 34th variable dummied, etc.)
- shortened the names of most scripts (underscores removed, long words abbreviated)
- did the same for global variables
- renamed scripts and global variable prefixes in accordance with my Name Scheme (scripts take the form SCGCD... and globals VgGCD...)
- renamed scripts in series' so as to remove any ambiguity (my rule is that the full i.d. name of any object should never comprise the partial name of another. Thus, 'MyScript, MyScriptA, MyScriptB' becomes 'MyScriptA, MyScriptB, MyScriptC')
- renamed a few scripts to resequence them for better layout
- abbreviated most local variables. When they are used in 'remote calls' (called from another script), the script name + the variable name comprises no more than 25 characters
- in accordance with a more localized name scheme, rendered skill and attribute names to two-letter abbreviations to give more concise and orderly layouts
- made most changes using search-and-replace in Dave Humphrey's excellent MWEdit which was then used to check each script
for errors and variable agreements
- ran 'recompile all' in TESCS to catch any errors, made any necessary changes, and ran it again until it ran clear
- manually re-saved every script in TESCS in hopes of ensuring 'recognition' by each script of the variables it needs, especially where 'remote calls' are involved
- used WinMerge to perform a fairly detailed line-by-line comparison against the original version of the mod to try catching any human error I might have introduced
- saved GCD in TESCS, exited, re-loaded, re-saved to (maybe) clean any 'residual references' (this works for dialogue changes)
- cleaned with TESTool and TESAME
----
Please note, this is NOT an attempt to change the way GCD, or any scripts for that matter, function. I am pathetic at scripting. Rewriting GCD is way beyond me and I am astounded by the sophistication that Galsiah has implemented in this creation.
Anyway?the upshot? Well, when I can get it to run, it seems to run like a damn. Changing the load order sometimes helps. It seems to run fine on its own. But guess what? Put it with other mods, and I can still get those wacky messages (though they're not so much the @@@@@@... kind, more like 'sound i.d. "ttle axe" not found in (script name)'), it might still take three tries to load a save game (unacceptable for MWAM (Morrowind Amalgamated) since that can take around 10-12 minutes to load), and with my present incarnation, initialization just hangs and I can't get in no matter what.
I have even tried exporting all changes and re-introducing them into a blank mod so as to come up with a fresh pool of references. Interestingly, this does not help and in fact the same error messages appear. This leads me to wonder if it's not so much a case of reference recognition but variable recognition or order dependency. It's interesting that the error messages are different for different GCD versions, but consistent within any one version. Messing around with sequences and i.d.s has apparently given me a unique set of problems.
In the meantime, it sounds like you might be on to something Gluby, and perhaps that's the route to go for now. I had begun embarking on a similar path, starting over again and doing things more stepwise. It appears AzuMite, though, has already produced a comment-free error-corrected version so I shan't bother. Thank you AzuMite!
Unfortunately, playtesting has alas revealed that AzuMite's version also yields error messages and load hangs. You can usually get it to work though. An interesting note: when used with Quick Char, the original GCD gives the "Gals__GetStartStats_InGame" message ("It seems you have been here in Vvardenfell for some time?"), while any version with the slightest tweaking fails to yield that routine.
I have come here for help and would be ecstatic if you would give permission, Galsiah, to upload this version to yourself or anyone else with too much time on their hands to pick at it and try to justify my efforts. (I'll include the ChangeLog and what I have so far of my Name Scheme). I must stress that, given its bare-bones nature, I would not advocate distributing it as a stand-alone version should it be made to work (that's for Galsiah to decide), but rather I envision it as part of the GCD suite where the original version, complete with comments, is front and center.
This is a great mod and I really hope it can be ironed out. It deserves every bit of its fine reputation.
=!)