Did you decompile all the scripts in the game?
Yup. Decompiled them all a couple times each. Which script number is generally User.sc?
(And just to double-check, SCICompanion's About Box says it's version 3.0.1.7, which I believe is still the latest official release...)
That's the general gist of it, but this is specific to species indices - it has nothing to do with procedures or methods. Each class (or species) has a number associated with it.
Ah, I was mixing up classes and procedures. So the fact that 999 itself wasn't compiling was a bit of a red herring.
I wonder how prevalent missing procedures are in Sierra games in general... I've already seen Colonel's Bequest has a couple. Heck, there's a whole missing script file referenced in there (984).
Well I've decompiled a lot of games, and this is the first I've seen of it that I can remember. Although I think there are still some mysterious compile errors in decompiled games that I haven't had time to look into - so perhaps this was the cause of those too.
I don't know if it decompiled properly or not, but it sure
looked like it decompiled properly. Script 996 has the reference to phantom script 984, and even references a specific procedure from it:
(proc984_0 alterEgo gSFeatures gCast gFeatures)It's funny, LB1's showing several areas that I would consider to be bad coding practice. This if statement that leads to a procedure call that doesn't exist, for one. For another I believe there's a 1 in 600 chance of the game crashing on startup at the copy protection screen.
Correct, it shouldn't need to be included.
And it did. The compiled script now behaves exactly as expected.
btw, I hope you're not making a patch to remove the fingerprint "copy protection".
I'm certainly not doing any such thing for distribution purposes. At some point in the future I want to create my own game in the vein of QFG (There's been a bit of a boon of those types of games lately, Quest for Infamy, Heroine's Quest, Betrayed Alliance), but for now I'm satisfying myself with decompiling/commenting existing games, making minor bug fixes, then making slight mods to existing games. But mostly just soaking in the SCI coding structure.