Regarding #1, yes. The simple answer is, the screen displays what you tell it to. Programatically you'll need to break your program down into separate functions for each of them and use a control loop to determine which function gets called when other functions exit. Although it's nested slightly, my control code looks something like this:
void DarkCap::Run()
{
Mouse &mouse = *Mouse::Instance();
while ( LoopGDK ( ) )
{
switch (currentStage) {
case intro: Intro();
break;
case menu: Menu ();
break;
case options: Options();
break;
case loadlevel: LoadLevel();
break;
case game: Play ();
break;
case interlude: Interlude ();
break;
case design: Design();
break;
case end: break;
default: break;
}
if (currentStage == end) break;
}
}
The currentStage enumeration sets what functionality needs to be called. Each function sets currentStage based on their exit conditions. For example, going into the game currentStage would be set to
intro which would cause the Intro() function to be called. Most logically Intro() would set currentStage to
menu and when the loop cycled again it would determine that the Menu() function needs to be run. Inside Menu() the setting for currentStage would be set to something like
play or
end then would exit, allowing the loop to cycle and determine which of those functions to run.
As for embedding a .avi, the answer is "probably," but not with anything simple. Though I don't have the urge to try it, I would imagine that you could set up a thread to do the processing then have it do the reading, decoding and writing to an image. But none of that is built into DGDK.
Lilith, Night Butterfly
I'm not a programmer but I play one in the office