You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the original SCI16 source, there are cases of "for" statements being used. In some of these cases, compiling causes bugs when the code is run.
For example, here is some code from QSOUND.SC from my QFG2 demo decompile, in the check: method of QueuedSound:
;EO: In the SCI16 QSOUND.SC, the original code messed up the dance scene. ;So the code being used is from the decompiled script. ;This is likely a compiler issue with "for" statements. ;;; (if (IsObject client) ;;; (for ;;; ( (= cues (- theSignal (or prevSignal 127))) ;;; ) ;;; cues ;;; ( (-- cues) ;;; ) ;;; ;;; ;;loop body ;;; ;;--------- ;;; (client cue: self) ;;; ) ;;; ) ;Here is the decompiled code (if (IsObject client) (= cues (- theSignal (if prevSignal else 127))) (while cues (client cue: self) (-- cues) ) ) (= prevSignal theSignal) )
A similar example of original code not compiling correctly is from DPATH.SC, from the same decompile:
(method (init theClient thePoints &tmp i) (= points (if points else (List new:))) ;EO: The following line of code causes a "Not an Object: $1" error in room 7 ; (= points (or points (List new:))) ;create only once
The text was updated successfully, but these errors were encountered:
;EO: In the SCI16 QSOUND.SC, the original code messed up the dance scene.
;So the code being used is from the decompiled script.
;;; (if (IsObject client)
;;; (for
;;; ( (= cues (- theSignal (or prevSignal 127)))
;;; )
;;; cues
;;; ( (-- cues)
;;; )
;;;
;;; ;;loop body
;;; ;;---------
;;; (client cue: self)
;;; )
;;; )
;Here is the decompiled code
(if (IsObject client)
(= cues (- theSignal (if prevSignal else 127)))
(while cues
(client cue: self)
(-- cues)
)
)
(= prevSignal theSignal)
)
(method (init theClient thePoints &tmp i)
(= points (if points else (List new:)))
;EO: The following line of code causes a "Not an Object: $1" error in room 7
; (= points (or points (List new:))) ;create only once
In the original SCI16 source, there are cases of "for" statements being used. In some of these cases, compiling causes bugs when the code is run.
For example, here is some code from QSOUND.SC from my QFG2 demo decompile, in the check: method of QueuedSound:
;EO: In the SCI16 QSOUND.SC, the original code messed up the dance scene. ;So the code being used is from the decompiled script. ;This is likely a compiler issue with "for" statements. ;;; (if (IsObject client) ;;; (for ;;; ( (= cues (- theSignal (or prevSignal 127))) ;;; ) ;;; cues ;;; ( (-- cues) ;;; ) ;;; ;;; ;;loop body ;;; ;;--------- ;;; (client cue: self) ;;; ) ;;; ) ;Here is the decompiled code (if (IsObject client) (= cues (- theSignal (if prevSignal else 127))) (while cues (client cue: self) (-- cues) ) ) (= prevSignal theSignal) )
A similar example of original code not compiling correctly is from DPATH.SC, from the same decompile:
(method (init theClient thePoints &tmp i) (= points (if points else (List new:))) ;EO: The following line of code causes a "Not an Object: $1" error in room 7 ; (= points (or points (List new:))) ;create only once
The text was updated successfully, but these errors were encountered: