Pikachu14 | Will/does the VGA template/docs have code/info for those funny speech portraits seen so often? |
Brian_Provinciano | They are not currently in the template, but would be easy for anyone to implement. It's just an animated view with a message box. Nothing to it. |
Pikachu14 | I'm guessin' I could figure it out with the decompiler, too? |
Lars Skovlund |
Not completely true. Most games that I have looked at set a special flag to circumvent the usual Animate cycle (for performance reasons) when displaying these portraits. There's also special code in there to handle lip synching - but Brian is right, the concept itself is quite simple to implement. |
Pikachu14 |
* wiggles his ears * Please, do elaborate, Lars... |
Lars Skovlund |
Kyoufu Kawa wrote: OK. SCI1 has a new resource type called SYNC which allows you to mark positions within a digital sound sample. A kernel call allows you to retrieve this information while the sound is playing. One possible use of this lip synch, I'll leave the others to your imagination :-) |
Pikachu14 |
I meant the flag, but it's still nice to know about the whole synchronizing thing. * uses imagination * A shotgun sample: "BLAM! ker-chink" A shotgun view: "BLAM!" Another view: "ker-chink" |
Lars Skovlund |
Kyoufu Kawa wrote: I don't know how interesting it is... it just makes the interpreter ignore calls to Animate (well, skip most of the processing, at any rate). It means that you have to take care of view drawing yourself (as Brian did in his earliest SCI demos). The purpose was no doubt to save a few clock cycles - since computers have become much faster since then, there's no real reason to use it. It's just more work. Oh, and if you want the variable number that controls this, it's hardcoded to global variable 84. So don't reorder/delete the variables in the template game, or you may end up tickling this feature unpredictably. The variable, when used, is usually pointed at a list called fastCast (in script 994 in original games) which is created and destroyed dynamically. The interpreter does not use the actual list, except as a flag (NULL/non-NULL). Lars |