Phantom Scripts

Date:    Mon, 22 Jan 1996 11:52:57 -0500
From:    Tim Gardner <tgardner@EM.COM>
Subject: Re: Phantom script & GHOST

>1. When pasting the score frames, duplicates of all the cast members used
>in the score are added to the cast and the score points to these. Cast
>members referenced only in lingo aren't duplicated so everything gets
>messed up. Correcting this requires extensive editing of the score and
>cast.
>
>2. All markers will be lost, so they need to be added and labeled (when
>needed), one by one. Does anyone know of a work around for this?
It is a real pain but there is a way. I'm writing from memory, so no guarantees. To uncorrupt a movie named movie1:
  1. fill the empty cast positions with dummy castmembers with a chosen name.
  2. copy movie1 to movie2
  3. delete all the castmembers of movie1
  4. quit director
  5. create and save a blank movie called movie3
  6. quit director
  7. rename movie2 to shared.dir
  8. open movie1 and select and copy the entire score.
  9. open movie3 and paste in the score, then save.
  10. quit director
  11. rename shared.dir to movie2
  12. open movie2 and copy the entire cast
  13. open movie3 and paste in entire cast, delete the dummy castmembers, and save.

Movie3 is now a new version of movie1.

This will uncorrupt only some movies. Notably it will uncorrupt movies whose symbol table has grown too big to be opened with Windows. I have seen other kinds of corruption that went away by simply deleting and redoing all the labels in the program, and the above procedure would probably not have helped that problem.


Date:    Mon, 22 Jan 1996 11:01:33 EST
From:    John Dowdell <71333.42@COMPUSERVE.COM>
Subject: Re: Exorcising ghost scripts
A number of posts this past week have spoken of how handlers seem to persist after changes. Usual cause is scripts that aren't compiled. But then problem descriptions shifted to scripts in Shared Casts that were being edited.

Best to keep things straightforward: Use Shared Cast for things that are concrete. It's another movie. Put tested routines into a Shared Cast. On the other hand, editing scripts in Shared Cast from another movie, then compiling, and saving from the other movie -- bad juju.

Even better, once scripts get to this level where you wish to maintain behaviors across sequential movies, use object-oriented scripting instead of global handlers in Shared Cast. At this point you can instantiate an object once in the initial movie, reference it by a global variable, and the object and its behaviors stay constant across movies. Side-benefit: It will maintain its own private properties, reducing the clutter of global variables. No global handlers, no twin movies, minimal global variables -- muy bueno.