I've lost sight of the various alpha versions flying around, but I'm using the SCICompanion.exe dated July 20th 2016. When recompiling the decompiled script 998 (original name "ACTOR.SC") of SQ1, the following sequence in Actor.setLoop:
(method (setLoop param1 &tmp theLooper)
(if
(= theLooper
(cond
((== argc 0) (super setLoop:) 0)
((not (IsObject param1)) (super setLoop: param1 &rest) 0)
((& (param1 -info-?) $8000) (param1 new:))
(else param1)
)
)
(if looper (looper dispose:))
((= looper theLooper) init: self &rest)
is properly decompiled, but after recompilation, it becomes:
(method (setLoop param1 &tmp theLooper)
(if
(= theLooper
(cond
((== argc 0) 0)
((not (IsObject param1)) 0)
((& (param1 -info-?) $8000) (param1 new:))
(else param1)
)
)
(if looper (looper dispose:))
((= looper theLooper) init: self &rest)
)
In other words, the "super setLoop" in the first two conds somehow gets lost, which results in the wrong loops being displayed in SQ1's intro. Right now, I am working around this bug by rewriting the code as
(method (setLoop param1 &tmp theLooper)
(cond ((== argc 0) (super setLoop:) (= theLooper 0))
((not (IsObject param1)) (super setLoop: param1 &rest) (= theLooper 0))
((& (param1 -info-?) $8000) (= theLooper (param1 new:)))
(else (= theLooper param1))
)
(if theLooper
(if looper (looper dispose:))
((= looper theLooper) init: self &rest)
)
)
The other problem I had was that "Replace all" sometimes would never finish. The last issue is more of a small quibble: When recompiling an existing script that I opened by double-clicking on the resource in the Explorer, the selection in the Explorer is reset to the start after compiling. I understand that recompiling causes the list to be refreshed, but it would be great if the selection could stay on the resource on which it was before the list is refreshed. Otherwise, SCI Companion works great for me.
If I may request an additional feature: the ability to produce a RESOURCE.TXT file from an existing set of RESOURCE.* packages, so I can use it with Sierra's MAKEVOLS to repackage a changed game with compression. This could be implemented as an option in the "Extract all resources" window. I have, more or less manually,
written a file for SQ1 that MAKEVOLS will accept and yields identical RESOURCE.* files to the released game when fed with extracted unmodified resources.