361 lines
11 KiB
Plaintext
361 lines
11 KiB
Plaintext
/* Copyright (c) Microsoft Corporation.
|
|
Licensed under the MIT License. */
|
|
|
|
// -----------------------------------------------------
|
|
//
|
|
// Revisions:
|
|
//
|
|
// mm-dd-yy
|
|
// ??-??-94 ***** - Created
|
|
// 05-16-95 ***** - cleanup
|
|
// -----------------------------------------------------
|
|
|
|
WAVE_CHUNK( "building\sound\studio\tvpop.wav", kwavStudioTVPop)
|
|
OBJECT( "studio1: toolbox", kgobStudio1Tools, 120, kcrsHand1 )
|
|
REP_PPMBMP( CHID1( krepDefault), "building\pbm\studio\st1tbx.pbm" )
|
|
REP_ANIM(CHID(kst2, krepDefault), "Studio: Toolbox TV")
|
|
// disable hotspots and play the toolbox pop out.
|
|
DISABLEHOTSPOTS(kflgBuildingMin);
|
|
ENDVOICE();
|
|
cnt = kcell1;
|
|
Cell( cnt++, 0,0, 6 );
|
|
VOICE( kwavStudioTVPop, 0 );
|
|
CreateChildGob( kgobStudio1, kgobStudio1TV, kgobStudio1TV );
|
|
While (cnt <= kcell6);
|
|
Cell(cnt++, 0,0, 6);
|
|
End;
|
|
ENDCHUNK
|
|
CLICK_SCRIPT( "studio1: tbox click" )
|
|
// Go to the studio. - intro sequence it
|
|
ChangeStateThis( kst2 );
|
|
ENDCHUNK
|
|
#include "studioBx.seq"
|
|
|
|
// Z depth above help balloons which have depth of 800.
|
|
OBJECT( "studio1: toolbox anim", kgobStudio1TV, 810, kcrsHand1 )
|
|
REP_ANIM(CHID(kst1, krepDefault), "Studio: Toolbox TV")
|
|
cnt = kcell1;
|
|
SetNoSlipThis( fTrue ); // we can now drop frames!
|
|
While (cnt <= kcell22);
|
|
Cell(cnt++, 0,0, 6);
|
|
End;
|
|
SetNoSlipThis( fFalse ); // don't drop frames!
|
|
Cell( cnt, 0,0, 6 ); // be sure and draw the last frame
|
|
ChangeStateGob( kgobStudio1McZee, kst4 );// played the intro
|
|
ENDCHUNK
|
|
#include "studioTv.seq"
|
|
|
|
// -----------------------------------------------------
|
|
// Studio Main McZee
|
|
// -----------------------------------------------------
|
|
|
|
// Talking on the phone sounds.
|
|
WAVE_CHUNK( "building\sound\studio\Std1A.wav", kwavStd1A )
|
|
WAVE_CHUNK( "building\sound\studio\VO97A.wav", kwavVO97A )
|
|
WAVE_CHUNK( "building\sound\studio\VO97B.wav", kwavVO97B )
|
|
// Intro sounds.
|
|
WAVE_CHUNK( "building\sound\studio\Std1B.wav", kwavStd1B )
|
|
|
|
// intro in front of studio sound
|
|
WAVE_CHUNK( "building\sound\studio\STD4.wav", kwavStudioIntro )
|
|
|
|
|
|
OBJECT("studio1: TOOLS INTRO ", kgobToolsIntroAVI, 999, kcrsHand1)
|
|
REP_VIDEO( CHID1( krepDefault ), "tools1.avi", fTrue )
|
|
CLICK_SCRIPT( "clicked tools intro" )
|
|
// stop playing... the polling will catch and throw
|
|
// us to the tools
|
|
StopThis();
|
|
ENDCHUNK
|
|
|
|
|
|
|
|
OBJECT("studio1: mczee", kgobStudio1McZee, 111, kcrsHand1)
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
// State 1: Default and hidden state.
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
REP_RECT(CHID(kst1, krepDefault), "studio1:mczee", 0, 0, 0, 0)
|
|
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
// State 2: Wait state.
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
REP_ANIM(CHID(kst2, krepDefault), "mczee talking on phone")
|
|
Cell(kcell69, 0, 0, 120);
|
|
WAIT_FOR_TRANSITION();
|
|
While (fTrue);
|
|
// Select one of the three phone animations at random.
|
|
iAnimRnd = Rnd(3);
|
|
If (iAnimRnd == 0); // book talent
|
|
kcellStart = kcell1;
|
|
kcellEnd = kcell67;
|
|
Elif (iAnimRnd == 1); // on hold
|
|
kcellStart = kcell36;
|
|
kcellEnd = kcell67;
|
|
Else; // deal
|
|
kcellStart = kcell1;
|
|
kcellEnd = kcell42;
|
|
End;
|
|
|
|
VOICE(kwavStd1A + iAnimRnd, ktpcStd1A + iAnimRnd);
|
|
|
|
i = kcellStart;
|
|
Cell(i++, 0, 0, 6);
|
|
SetNoSlipThis( fTrue ); // we can now drop frames!
|
|
While (i < kcellEnd);
|
|
Cell(i, 0, 0, 6);
|
|
i++;
|
|
End;
|
|
SetNoSlipThis( fFalse ); // we can now drop frames!
|
|
Cell( kcellEnd, 0,0, 6 );
|
|
|
|
// McZee listening to the phone.
|
|
i=kcell451;
|
|
While (i <= kcell518);
|
|
Cell(i, 0, 0, 6);
|
|
i++;
|
|
End;
|
|
ENDVOICE();
|
|
End;
|
|
ENDCHUNK
|
|
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
// State 3: McZee Studio Intro/Help. "Hey --welcome to the studio!"
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
REP_ANIM(CHID(kst3, krepDefault), "mczee intro")
|
|
VOICE(kwavStd1B, ktpcStd1B);
|
|
i = kcell69;
|
|
While (i <= kcell138);
|
|
Cell(i, 0,0, 6);
|
|
i++;
|
|
End;
|
|
ENDVOICE();
|
|
SETGLOBAL(fHelpOn, fFalse);
|
|
DestroyGob(kgobBalloon1d); // This destroys the balloon that holds the tip
|
|
ChangeStateThis(kst2); // Back to wait state.
|
|
ENDCHUNK
|
|
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
// State 4: McZee - take us into the tools (play intro anim of
|
|
// talking in front of the tools if necessary)
|
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
REP_ANIM(CHID(kst4, krepDefault), "mczee intro")
|
|
PLAYMIDI( cnoNil ); // stop midi
|
|
//WAIT_FOR_TRANSITION();
|
|
Cell( CHID(kst1, krepDefault), 0,0, 1 ); // hide mczee
|
|
DestroyGob( kgobStudio1TV );
|
|
DestroyGob( kgobStudio1Tools );
|
|
ChangeStateGob( kgobStudio1, kst2 ); // switch to tools background in case AVI goes
|
|
|
|
If( ::fStdIntro );
|
|
// if the users have already seen the studio intro, skip to tools
|
|
// and make a new movie
|
|
ChangeStateGob( kgobStudio1McZee, kst5 );
|
|
Exit();
|
|
End;
|
|
|
|
DISABLEHOTSPOTS(kflgBuildingMin);
|
|
::fStdIntro = fTrue;
|
|
ENDVOICE();
|
|
CreateChildGob( GidParThis(), kgobToolsIntroAVI, kgobToolsIntroAVI );
|
|
Cell( CHID(kst1, krepDefault),0,0, 100 ); // pause for sufficient cue-up
|
|
While( PlayingGob( kgobToolsIntroAVI ));
|
|
Cell( CHID(kst1, krepDefault), 0, 0, 10 ); // poll at 1/6ths of a second
|
|
End;
|
|
SETGLOBAL( fStudioPS, fFalse );
|
|
ChangeStateThis( kst5 );
|
|
ENDCHUNK
|
|
|
|
REP_ANIM( CHID(kst5, krepDefault), "start tools")
|
|
DestroyThis(); // Erase McZee to prevent palette flash
|
|
ENDVOICE(); // Make sure McZee isn't talking
|
|
|
|
// set a flag to tell the tools to play the annoying guided help sequence
|
|
SetProp(kpridStudioFlags, GetProp(kpridStudioFlags) | 1);
|
|
LOADTOOLS(kgobStudio1, kst1, chidNil);
|
|
ENDCHUNK
|
|
|
|
CLICK_SCRIPT("Clicked McZee: Do help")
|
|
If (!GLOBAL(fHelpOn)); // Turning help on
|
|
SETGLOBAL(fHelpOn, fTrue);
|
|
CreateHelpGob(kgobStudio1, ktpcStudio1);
|
|
ChangeStateThis(kst3);
|
|
Else; // Turning help off
|
|
DestroyGob(kgobBalloon1d); // This destroys the balloon that holds the tip
|
|
ENDVOICE();
|
|
SETGLOBAL(fHelpOn, fFalse);
|
|
ChangeStateThis(kst2); // Back to wait state.
|
|
End;
|
|
ENDCHUNK
|
|
#include "mzstudio.seq" // include all mczee cells
|
|
|
|
|
|
OBJECT( "doors out", kgobStudio2Doors, 33, kcrsHand1 )
|
|
REP_MASK(CHID1(krepDefault), "building\bitmaps\studio\st2doors.bmp", 0, 0)
|
|
CLICK_SCRIPT( "doors out clicked" )
|
|
NEXTPLACE1( kgobBackstage1, kst2 );
|
|
ENDCHUNK
|
|
|
|
OBJECT( "studio2 map", kgobStudio2Map, 44, kcrsHand1 )
|
|
REP_MASK(CHID1(krepDefault), "building\bitmaps\studio\st2map.bmp", 0, 0)
|
|
CLICK_SCRIPT( "studio 2 map clicked" )
|
|
CreateChildGob( GET_CURRENTPLACE(), kgobMapMain, kgobMapMain );
|
|
ENDCHUNK
|
|
|
|
OBJECT( "studio2 exit", kgobStudio2Exit, 45, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault), "building\bitmaps\studio\st2exit.bmp" )
|
|
CLICK_SCRIPT( "studio 2 exit clicked" )
|
|
QUITAPP();
|
|
ENDCHUNK
|
|
|
|
OBJECT( "studio2 exit word", kgobStudio2ExitWord, 44, kcrsHand1 )
|
|
REP_PPMBMP( CHID1( krepDefault), "building\pbm\studio\st2exit.pbm" )
|
|
|
|
|
|
//------------------------------------------------------------
|
|
// Bio page hotspots
|
|
//----------------------------------------------------------
|
|
OBJECT( "Biopage 38 mask", kgobStdo1m1, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo1m1.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 38 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 38 );
|
|
BIO_CREATEBOOK( 38, fFalse, kgobStudio1 );
|
|
End;
|
|
ENDCHUNK
|
|
|
|
|
|
|
|
OBJECT( "Biopage 14 mask", kgobStdo4m1, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo4m1.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 14 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 14 );
|
|
BIO_CREATEBOOK( 14, fFalse, kgobStudio4 );
|
|
End;
|
|
ENDCHUNK
|
|
|
|
OBJECT( "Biopage 15 mask", kgobStdo4m2, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo4m2.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 15 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 15 );
|
|
BIO_CREATEBOOK( 15, fFalse, kgobStudio4 );
|
|
End;
|
|
ENDCHUNK
|
|
|
|
OBJECT( "Biopage 16 mask", kgobStdo4m3, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo4m3.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 16 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 16 );
|
|
BIO_CREATEBOOK( 16, fFalse, kgobStudio4 );
|
|
End;
|
|
ENDCHUNK
|
|
|
|
OBJECT( "Biopage 17 mask", kgobStdo4m4, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo4m4.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 17 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 17 );
|
|
BIO_CREATEBOOK( 17, fFalse, kgobStudio4);
|
|
End;
|
|
ENDCHUNK
|
|
|
|
OBJECT( "Biopage 18 mask", kgobStdo3m1, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo3m1.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 18 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 18 );
|
|
BIO_CREATEBOOK( 18, fFalse, kgobStudio3 );
|
|
End;
|
|
ENDCHUNK
|
|
|
|
OBJECT( "Biopage 19 mask", kgobStdo3m2, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo3m2.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 19 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 19 );
|
|
BIO_CREATEBOOK( 19, fFalse, kgobStudio3 );
|
|
End;
|
|
ENDCHUNK
|
|
|
|
OBJECT( "Biopage 20 mask", kgobStdo3m3, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo3m3.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 20 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 20 );
|
|
BIO_CREATEBOOK( 20, fFalse, kgobStudio3 );
|
|
End;
|
|
ENDCHUNK
|
|
|
|
OBJECT( "Biopage 21 mask", kgobStdo2m1, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo2m1.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 21 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 21 );
|
|
BIO_CREATEBOOK( 21, fFalse, kgobStudio2 );
|
|
End;
|
|
ENDCHUNK
|
|
|
|
OBJECT( "Biopage 22 mask", kgobStdo2m2, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo2m2.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 22 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 22 );
|
|
BIO_CREATEBOOK( 22, fFalse, kgobStudio2 );
|
|
End;
|
|
ENDCHUNK
|
|
|
|
OBJECT( "Biopage 23 mask", kgobStdo2m3, 0, kcrsHand1 )
|
|
REP_MASK( CHID1( krepDefault ), "building\bitmaps\studio\stdo2m3.bmp", 0, 0 )
|
|
CLICK_SCRIPT( "mask clicked" )
|
|
If(fBIO_AVAIL( 23 ) );
|
|
// Bio Page already found
|
|
PlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,
|
|
ksclBldgSound);
|
|
Else;
|
|
BIO_MARKFOUND( 23 );
|
|
BIO_CREATEBOOK( 23, fFalse, kgobStudio2 );
|
|
End;
|
|
ENDCHUNK
|