Microsoft-3D-Movie-Maker/SRC/STUDIO/GADGET.CHT

707 lines
28 KiB
Plaintext

/* Copyright (c) Microsoft Corporation.
Licensed under the MIT License. */
// -----------------------------------------------------
// get our labels and gadget help
// -----------------------------------------------------
// -----------------------------------------------------
// and our gadget topics
// -----------------------------------------------------
//////////////////////////////////
// Gadget Start Up Ok balloon
//////////////////////////////////
GOBCHUNK("Gadget Start up", kidGadgetStartUp, kgokkRectHit)
DEFAULT_POSITION(0, 0, 100)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)
ENDCHUNK
// grey out bkgrd
REP_FILL( kcell1, "kidGadgetStartUp", 0, 0, 640, 480, Palette(73), Transparent)
PATTERN_50
ENDCHUNK
CREATE_SCRIPT("gadget startup created")
Cell( kcell1, 0,0, 0); // draw ourselves
CreateHelpThis(ktpcPrjIntro03); // then do the help balloon
ENDCHUNK
// ----------------------------------------------------------------
// Gadget Start Up script to run when the ok button is hit
// ----------------------------------------------------------------
HELP_SCRIPT(kidGadgetStartOk)
// parm[0] = group # passed in
If(_parm[0] != 0);
// create the gadget parent and sequencer
CreateChildGob(kidBackground, kidGadgetPersistent, kidGadgetPersistent);
CreateChildGob(kidBackground, kidSequenceParent, kidSequenceParent);
CreateChildGob(kidBackground, kidGadgetParent, kidGadgetParent);
// disable why button
ChangeStateGob(kidGadgetWhy, kst2);
DestroyGob(kidGadgetStartUp);
Return(fTrue);
Else;
fMelAudio = GetProp( kpridMcZeeAudio ) & kflgMelAudio;
If (._cnoSound != cnoNil && !fMelAudio);
StopSoundClass(0, sclHelpSoundClass);
PlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);
End;
End;
ENDCHUNK
//////////////////////////////////
// Gadget parent object
//////////////////////////////////
GOBCHUNK("Gadget Parent", kidGadgetParent, kgokkRectHit)
DEFAULT_POSITION(0, 0, 100)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, CHID1(kchidClick), cidNil, cnoNil)
ENDCHUNK
REP_RECT( CHID1(krepDefault), "kidGadgetParent", 0, 0, 640, 480 )
CREATE_SCRIPT("gadget parent created")
// Create the gadget body
CreateChildThis(kidGadgetBody, kidGadgetBody);
CreateChildThis(kidGadgetSelectorUp, kidGadgetSelectorUp);
CreateChildThis(kidGadgetSelectorDown, kidGadgetSelectorDown);
CreateChildThis(kidGadgetSelectorNum, kidGadgetSelectorNum);
CreateChildThis(kidGadgetAviFrame, kidGadgetAviFrame);
CreateChildThis(kidGadgetPlay, kidGadgetPlay);
CreateChildThis(kidGadgetHow, kidGadgetHow);
CreateChildThis(kidGadgetCancel, kidGadgetCancel);
CreateChildThis(kidGadgetWhy, kidGadgetWhy);
CreateChildThis(kidGadgetVoice, kidGadgetVoice);
CreateChildThis(kidGadgetWord, kidGadgetWord);
CreateChildThis(kidGadgetLockerFill, kidGadgetLockerFill);
// change the gadget button to a black button
ChangeStateGob(kidGadget, kst2);
// start up the next sequence
RunScriptThis(kchidScript1);
// turn tooltips on for the gadget
SetProp(kpridToolTipDelay, kdtimToolTipDelay);
ENDCHUNK
// create a new sequence to run
CHILD_SCRIPT("Start up next project sequence", kchidScript1)
// Start the current sequence(should never be past end, but...)
If (::gdCurrStep <= ::gdSeqSteps[::gdCurrProj]);
// reinitialize the sequence generator
RunScriptGob(kidSequenceParent, kchidScript7);
tbSeq = ::gdSeqNum[::gdProjEnd[::gdCurrProj - 1] + ::gdCurrStep];
CreateChildGob(kidBackground, tbSeq, tbSeq);
ChangeStateGob(kidGadgetSelectorNum, (kst1 + ::gdCurrProj - 1));
// Change locker picts, pressing play handles gdcurrstep one
If (::gdCurrStep > 1);
CreateHelpGob(kidGadgetTextBox, ktpcGadgetTextStart + ::gdProjEnd[::gdCurrProj - 1] + ::gdCurrProj + ::gdCurrStep - 1);
ChangeStateGob(kidGadgetLockerPict, kst2);
Else;
CreateHelpGob(kidGadgetTextBox, ktpcGadgetTextStart + ::gdProjEnd[::gdCurrProj - 1] + (::gdCurrProj - 1) + ::gdCurrStep - 1);
End;
End;
ENDCHUNK
// for handling modal dialog option on selector up and down
CHILD_SCRIPT("Handle modal save options", kchidScript3)
// if they choose save do nothing let next portfolio results handle it, otherwise handle it
If (_parm[2] != 1);
// kill all filters
FilterCmdsThis(cidNil, kidNil, chidNil);
// figure out what to do, 2 go on, 3 drop back to where we were
If (_parm[2] == 0);
DestroyGob(kidGadgetAlertGlass);
If (::gdUpSelected == fTrue);
RunScriptGob(kidGadgetSelectorUp, kchidScript1);
Else;
RunScriptGob(kidGadgetSelectorDown, kchidScript1);
End;
Else;
CreateHelpGob(kidGadgetAlertGlass, ktpcNewMovie);
End;
End;
ENDCHUNK
// for handling portfolio ok and cancel in selectors
CHILD_SCRIPT("Handle modal save options", kchidScript4)
// kill all filters
FilterCmdsThis(cidNil, kidNil, chidNil);
// Make sure we have something to go on
If(_parm[2] == fTrue);
DestroyGob(kidGadgetAlertGlass);
If (::gdUpSelected == fTrue);
RunScriptGob(kidGadgetSelectorUp, kchidScript1);
Else;
RunScriptGob(kidGadgetSelectorDown, kchidScript1);
End;
// cancel from portfolio, put choices back up
Else;
CreateHelpGob(kidGadgetAlertGlass, ktpcNewMovie);
End;
ENDCHUNK
// for handling modal dialog option on cancel
CHILD_SCRIPT("Handle modal save options", kchidScript5)
// if they choose save do nothing let next portfolio results handle it, otherwise handle it
If (_parm[2] != 1);
// kill all filters
FilterCmdsThis(cidNil, kidNil, chidNil);
// figure out what to do, 2 go on, 3 drop back to where we were
If (_parm[2] == 0);
DestroyGob(kidGadgetAlertGlass);
Else;
CreateHelpGob(kidGadgetAlertGlass, ktpcProjectCancel);
End;
End;
ENDCHUNK
// for handling portfolio ok and cancel on cancel
CHILD_SCRIPT("Handle modal save options", kchidScript6)
// kill all filters
FilterCmdsThis(cidNil, kidNil, chidNil);
// Make sure we have something to go on
If(_parm[2] == fTrue);
DestroyGob(kidGadgetAlertGlass);
Else;
CreateHelpGob(kidGadgetAlertGlass, ktpcProjectCancel);
End;
ENDCHUNK
///////////////////////////////////
// gadget object
///////////////////////////////////
// -----------------------------------------------------
// gadget body image that masks stuff underneath it
// -----------------------------------------------------
GOBCHUNK("Body of gadget object", kidGadgetBody, kgokkRectHit)
DEFAULT_POSITION(0, 0, 150)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)
ENDCHUNK
REP_MBMP( CHID1(krepDefault), "studio\bmp\gdbody.bmp")
CREATE_ANIM( "gadget created" )
CreateChildThis( kidGadgetVolumePath, kidGadgetVolumePath );
ENDCHUNK
// -----------------------------------------------------
// Gadget Play button
// -----------------------------------------------------
GOBCHUNK("Gadget play button", kidGadgetPlay, kgokkRectHit)
DEFAULT_POSITION(kxpGdPlay, kypGdPlay, 200)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttPlayButton)
ENDCHUNK
REP_MBMPREG(kcell1, "studio\bmp\gdplay.bmp", kxpregGdPlay, kypregGdPlay)
REP_MBMPREG(kcell2, "studio\bmp\gdstop.bmp", kxpregGdPlay, kypregGdPlay)
REP_ANIM(CHID(kst1, krepDefault), "play button, movie stopped")
// Got the play button showing -- make sure the movie isn't playing
// reset the video to the static cell
ChangeStateGob(kidGadgetAvi, (kst1 + ::gdCurrProj - 1));
Cell(kcell1, 0, 0, 1);
ENDCHUNK
REP_ANIM(CHID(kst2, krepDefault), "play...poll movie")
// tell the movie gob to play by switching state
ChangeStateGob(kidGadgetAvi, (kst6 + ::gdCurrProj));
// draw our representation
Cell( kcell2, 0, 0, 1 );
// now poll the movie ... if it finishes, switch button back to state 1 (stopped)
While(PlayingGob(kidGadgetAvi));
Cell(chidNil, 0, 0, 10); // poll at 1/6ths of a second
End;
ChangeStateThis(kst1);
EnqueueCid(cidGadgetAviStop, kidSequenceParent, 0, 0, 0, 0);
CreateHelpGob(kidGadgetTextBox, ktpcGadgetTextStart + ::gdProjEnd[::gdCurrProj - 1] + ::gdCurrProj + ::gdCurrStep - 1);
If (StateGob(kidGadgetLockerPict) == kst1);
ChangeStateGob(kidGadgetLockerPict, kst2);
End;
// enable why button
ChangeStateGob(kidGadgetWhy, kst1);
ENDCHUNK
CLICK_SCRIPT( "button clicked" );
If (StateThis() == kst1);
ChangeStateThis(kst2); // we are play button, switch to stop button and play movie
Else;
ChangeStateThis(kst1);
EnqueueCid(cidGadgetAviStop, kidSequenceParent, 0, 0, 0, 0);
CreateHelpGob(kidGadgetTextBox, ktpcGadgetTextStart + ::gdProjEnd[::gdCurrProj - 1] + ::gdCurrProj + ::gdCurrStep - 1);
If (StateGob(kidGadgetLockerPict) == kst1);
ChangeStateGob(kidGadgetLockerPict, kst2);
End;
// enable why button
ChangeStateGob(kidGadgetWhy, kst1);
End;
ENDCHUNK
// -----------------------------------------------------
// Gadget volume thumb
// -----------------------------------------------------
GOBCHUNK("Gadget Volume Thumb", kidGadgetVolumeThumb, kgokkRectNoHit)
DEFAULT_POSITION(0, 0, 100)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)
ENDCHUNK
REP_MBMP(CHID1(krepDefault), "studio\bmp\gdvolthm.bmp")
// --------------------------------------------------------------------------------
// The slider is the rectangular path the volume slider rolls around in.
// kdypGadgetSlider is the height of the slidable area; kdypGadgetSliderTotal includes
// height of thumbnail to be sure it will show at the min setting
// --------------------------------------------------------------------------------
GOBCHUNK("Gadget Volume SliderPath", kidGadgetVolumePath, kgokkRectHit)
DEFAULT_POSITION(kxpGadgetSlider, kypGadgetSlider, 210)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttVolumeControl )
ENDCHUNK
REP_RECT(CHID1(krepDefault), "Gadget rectangle", 0, 0, kdxpGadgetSlider, kdypGadgetSliderTotal)
CREATE_SCRIPT("Create sliderpath")
CreateChildThis(kidGadgetVolumeThumb, kidGadgetVolumeThumb);
// get initial volume value, move thumbnail
y = kdypGadgetSlider -((GetMasterVolume() * kdypGadgetSlider) / (kvlmFull*2));
MoveAbsGob(kidGadgetVolumeThumb, 0, y);
ENDCHUNK
REP_ANIM(CHID1(krepMouseDnOn), "slider")
// repeat up to 30000 times.
.siiLoop = PlaySoundThis( kctgWave, kwavDing, 2, 0x00010000, 30000, 1, 4 );
While(1);
y = YMouseThis();
If( y < 0 );
y=0;
Elif(y > kdypGadgetSlider);
y =kdypGadgetSlider;
End;
// move thumb slider
MoveAbsGob(kidGadgetVolumeThumb, 0, y);
// track new volume
newvol = ((kvlmFull*2)* (kdypGadgetSlider-y)) / kdypGadgetSlider;
// set the volume
SetMasterVolume(newvol);
// Sample at 10/60ths of a second.
Cell(0, 0, 0, 10);
End;
ENDCHUNK
REP_ANIM(CHID1(kchidDownUpOn), "release on")
StopSound(.siiLoop);
ENDCHUNK
ADOPT_ANIM( LAST_ANIM, CHID1(kchidDownUpOff))
// -----------------------------------------------------
// Gadget voice toggle control
// -----------------------------------------------------
GOBCHUNK("Gadget Voice Toggle", kidGadgetVoice, kgokkRectHit)
DEFAULT_POSITION(kxpGdMelVoice, kypGdMelVoice, 200)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttMelanieOnOff)
ENDCHUNK
REP_MBMPREG(CHID1(krepDefault), "studio\bmp\gdmelon.bmp", kxpregGdMelVoice, kypregGdMelVoice)
ADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOn))
REP_MBMPREG(CHID(kst2, krepDefault), "studio\bmp\gdmeloff.bmp", kxpregGdMelVoice, kypregGdMelVoice)
CREATE_ANIM("Mel Voice control")
// see if voice should be on or off
fMelAudio = GetProp( kpridMcZeeAudio ) & kflgMelAudio;
If ( fMelAudio ); // audio suppressed = state 2
ChangeStateThis(kst2);
End;
ENDCHUNK
CLICK_SCRIPT("voice toggle clicked")
flg = GetProp( kpridMcZeeAudio );
If (StateThis() == kst1); // audio on (suppress = FALSE)
flg |= kflgMelAudio; // switch to audio off (suppress = TRUE)
SetProp( kpridMcZeeAudio, flg );
ChangeStateThis(kst2);
StopSoundClass(0, sclHelpSoundClass); // shut her up immediately (heh heh)
Else;
flg &= ~kflgMelAudio; // opposite of above
SetProp( kpridMcZeeAudio, flg );
ChangeStateThis(kst1); // toggle audio on / off state
End;
ENDCHUNK
// -----------------------------------------------------
// Gadget cancel control
// -----------------------------------------------------
GOBCHUNK("Gadget Cancel", kidGadgetCancel, kgokkRectHit)
DEFAULT_POSITION(kxpGdClose, kypGdClose, 200)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttCloseButton)
ENDCHUNK
REP_MBMPREG(CHID1(krepDefault), "studio\bmp\gdclose.bmp", kxpregGdClose, kypregGdClose)
ADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))
REP_MBMPREG(CHID1(krepMouseDnOn), "studio\bmp\gdcloses.bmp", kxpregGdClose, kypregGdClose)
CLICK_SCRIPT("Cancel clicked")
// stop playing video from playing if playing
If (StateGob(kidGadgetPlay) == kst2);
ChangeStateGob(kidGadgetPlay, kst1);
End;
CreateChildGob(kidBackground, kidGadgetAlertGlass, kidGadgetAlertGlass);
CreateHelpGob(kidGadgetAlertGlass, ktpcProjectCancel);
ENDCHUNK
CHILD_SCRIPT("Exit the gadget", kchidScript1)
DestroyGob(kidSequenceParent->lastHelp);
DestroyGob(kidSequenceParent);
DestroyGob(kidGadget);
DestroyGob(kidGadgetParent);
// flag for easel help
::fHelpOn = fFalse;
CreateHelpGob(kidBackground, ktpcUserQuitsHelp);
ENABLEACCEL(fFalse);
ENDCHUNK
// -----------------------------------------------------
// Gadget alert glass for protecting against illegal click
// -----------------------------------------------------
GOBCHUNK("Gadget alert glass", kidGadgetAlertGlass, kgokkRectHit)
DEFAULT_POSITION(0, 0, 600)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)
ENDCHUNK
REP_FILL(CHID1(krepDefault), "Gadget alert glass", 0, 0, 640, 480, Palette(73), Transparent )
PATTERN_50X
ENDCHUNK
// -----------------------------------------------------
// How button
// -----------------------------------------------------
GOBCHUNK("Gadget How button", kidGadgetHow, kgokkRectHit)
DEFAULT_POSITION(kxpGdHow, kypGdHow, 200)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttHowButton)
ENDCHUNK
REP_MBMPREG(CHID1(krepDefault), "studio\bmp\gdhow.bmp", kxpregGdHow, kypregGdHow)
ADOPT_MBMP(LAST_MBMP, CHID1(krepMouseUpOn))
ADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))
REP_MBMPREG(CHID1(krepMouseDnOn), "studio\bmp\gdhows.bmp", kxpregGdHow, kypregGdHow)
CLICK_SCRIPT("button up clicked")
::gdCurrStep++;
// turn tooltips back off
SetProp(kpridToolTipDelay, 999999);
DestroyGob(kidGadgetParent);
// change the gadget button to normal
ChangeStateGob(kidGadget, kst1);
ENDCHUNK
// -----------------------------------------------------
// Why button
// -----------------------------------------------------
GOBCHUNK("Gadget Why button", kidGadgetWhy, kgokkRectHit)
DEFAULT_POSITION(kxpGdWhy, kypGdWhy, 200)
ACTION(fcustNil, fcustNil, fgrfst1, kcrsHand1, CHID1(kchidClick), cidNil, ttWhyButton)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, ttWhyButton)
ENDCHUNK
REP_MBMPREG(CHID(kst1, krepDefault), "studio\bmp\gdwhy.bmp", kxpregGdWhy, kypregGdWhy)
ADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseUpOn))
ADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOff))
REP_MBMPREG(CHID(kst1, krepMouseDnOn), "studio\bmp\gdwhys.bmp", kxpregGdWhy, kypregGdWhy)
REP_MBMPREG(CHID(kst2, krepDefault), "studio\bmp\gdwhyd.bmp", kxpregGdWhy, kypregGdWhy)
CLICK_SCRIPT("button clicked")
// ChangeStateGob( kidGadgetPlay, kst1 );
ENDCHUNK
REP_WAVE( CHID1( krepClicked ), "studio\sound\gemtip.wav" )
// -----------------------------------------------------
// Selector up button
// -----------------------------------------------------
GOBCHUNK("Gadget up button", kidGadgetSelectorUp, kgokkRectHit)
DEFAULT_POSITION(kxpGdSelUp, kypGdSelUp, 200)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttNextMovie)
ENDCHUNK
REP_MBMPREG(CHID(kst1, krepDefault), "studio\bmp\gdselup.bmp", kxpregGdSelUp, kypregGdSelUp)
ADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseUpOn))
ADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOff))
REP_MBMPREG(CHID(kst1, krepMouseDnOn), "studio\bmp\gdselups.bmp", kxpregGdSelUp, kypregGdSelUp)
ADOPT_WAVE( kcnoPageUpWav, CHID1( krepClicked ))
CLICK_SCRIPT("button up clicked")
::gdUpSelected = fTrue;
// stop playing video from playing if playing
If (StateGob(kidGadgetPlay) == kst2);
ChangeStateGob(kidGadgetPlay, kst1);
End;
// if already working on project#x then prompt
If (::gdCurrStep > 1);
CreateChildGob(kidBackground, kidGadgetAlertGlass, kidGadgetAlertGlass);
CreateHelpGob(kidGadgetAlertGlass, ktpcNewMovie);
Else;
RunScriptThis(kchidScript1);
End;
ENDCHUNK
CHILD_SCRIPT("Up button selected", kchidScript1)
// if last project then wrap around to first
If (::gdCurrProj > 5);
::gdCurrProj = 1;
Else;
::gdCurrProj++;
End;
::gdCurrStep = 1;
ChangeStateGob(kidGadgetSelectorNum, (kst1 + ::gdCurrProj - 1));
If (StateGob(kidGadgetPlay) == kst2);
ChangeStateGob(kidGadgetPlay, kst1);
Else;
ChangeStateGob(kidGadgetAvi, (kst1 + ::gdCurrProj - 1));
End;
If (StateGob(kidGadgetLockerPict) == kst2);
ChangeStateGob(kidGadgetLockerPict, kst1);
End;
// disable why button
ChangeStateGob(kidGadgetWhy, kst2);
RunScriptGob(kidGadgetParent, kchidScript1);
ENDCHUNK
// -----------------------------------------------------
// Selector number
// -----------------------------------------------------
GOBCHUNK("Gadget selector number", kidGadgetSelectorNum, gokkNoHit)
DEFAULT_POSITION(kxpGdMovieNum, kypGdMovieNum, 200)
// ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, CHID1(kchidClick), cidNil, cnoNil)
ENDCHUNK
REP_MBMPREG(CHID(kst1, krepDefault), "studio\bmp\gdmovie1.bmp", kxpregGdMovieNum, kypregGdMovieNum)
REP_MBMPREG(CHID(kst2, krepDefault), "studio\bmp\gdmovie2.bmp", kxpregGdMovieNum, kypregGdMovieNum)
REP_MBMPREG(CHID(kst3, krepDefault), "studio\bmp\gdmovie3.bmp", kxpregGdMovieNum, kypregGdMovieNum)
REP_MBMPREG(CHID(kst4, krepDefault), "studio\bmp\gdmovie4.bmp", kxpregGdMovieNum, kypregGdMovieNum)
REP_MBMPREG(CHID(kst5, krepDefault), "studio\bmp\gdmovie5.bmp", kxpregGdMovieNum, kypregGdMovieNum)
REP_MBMPREG(CHID(kst6, krepDefault), "studio\bmp\gdmovie6.bmp", kxpregGdMovieNum, kypregGdMovieNum)
// -----------------------------------------------------
// Selector down button
// -----------------------------------------------------
GOBCHUNK("Gadget down button", kidGadgetSelectorDown, kgokkRectHit)
DEFAULT_POSITION(kxpGdSelDn, kypGdSelDn, 200)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttPreviousMovie)
ENDCHUNK
REP_MBMPREG(CHID(kst1, krepDefault), "studio\bmp\gdseldn.bmp", kxpregGdSelDn, kypregGdSelDn)
ADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseUpOn))
ADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOff))
REP_MBMPREG(CHID(kst1, krepMouseDnOn), "studio\bmp\gdseldns.bmp", kxpregGdSelDn, kypregGdSelDn)
ADOPT_WAVE( kcnoPageDnWav, CHID1( krepClicked ))
CLICK_SCRIPT("button down clicked")
::gdUpSelected = fFalse;
// stop playing video from playing if playing
If (StateGob(kidGadgetPlay) == kst2);
ChangeStateGob(kidGadgetPlay, kst1);
End;
// if already working on project#x then prompt
If (::gdCurrStep > 1);
CreateChildGob(kidBackground, kidGadgetAlertGlass, kidGadgetAlertGlass);
CreateHelpGob(kidGadgetAlertGlass, ktpcNewMovie);
Else;
RunScriptThis(kchidScript1);
End;
ENDCHUNK
CHILD_SCRIPT("Down button selected", kchidScript1)
// if first project then wrap around to last
If (::gdCurrProj < 2);
::gdCurrProj = 6;
Else;
::gdCurrProj--;
End;
::gdCurrStep = 1;
ChangeStateGob(kidGadgetSelectorNum, (kst1 + ::gdCurrProj - 1));
If (StateGob(kidGadgetPlay) == kst2);
ChangeStateGob(kidGadgetPlay, kst1);
Else;
ChangeStateGob(kidGadgetAvi, (kst1 + ::gdCurrProj - 1));
End;
If (StateGob(kidGadgetLockerPict) == kst2);
ChangeStateGob(kidGadgetLockerPict, kst1);
End;
// disable why button
ChangeStateGob(kidGadgetWhy, kst2);
RunScriptGob(kidGadgetParent, kchidScript1);
ENDCHUNK
// -----------------------------------------------------
// The frame around the movie, movies parent
// -----------------------------------------------------
GOBCHUNK("Gadget movie avi frame", kidGadgetAviFrame, gokkNoHit)
DEFAULT_POSITION( 241, 84, 200)
// ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, CHID1(kchidClick), cidNil, cnoNil)
ENDCHUNK
REP_RECT(CHID1(krepDefault), "avi", 0, 0, 160, 90 )
CREATE_ANIM("")
CreateChildThis(kidGadgetAvi, kidGadgetAvi);
ENDCHUNK
// -----------------------------------------------------
// The area inside the movie frame
// -----------------------------------------------------
GOBCHUNK("Gadget movie avi", kidGadgetAvi, gokkNoHit)
DEFAULT_POSITION( 0, 0, 100)
// ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, CHID1(kchidClick), cidNil, cnoNil)
ENDCHUNK
REP_MBMP(CHID(kst1, krepDefault), "studio\bmp\gdavi1.bmp")
REP_MBMP(CHID(kst2, krepDefault), "studio\bmp\gdavi3.bmp")
REP_MBMP(CHID(kst3, krepDefault), "studio\bmp\gdavi2.bmp")
REP_MBMP(CHID(kst4, krepDefault), "studio\bmp\gdavi6.bmp")
REP_MBMP(CHID(kst5, krepDefault), "studio\bmp\gdavi5.bmp")
REP_MBMP(CHID(kst6, krepDefault), "studio\bmp\gdavi4.bmp")
REP_VIDEO(CHID(kst7, krepDefault), "proj1.avi", fTrue)
REP_VIDEO(CHID(kst8, krepDefault), "proj2.avi", fTrue)
REP_VIDEO(CHID(kst9, krepDefault), "proj3.avi", fTrue)
REP_VIDEO(CHID(kst10, krepDefault), "proj4.avi", fTrue)
REP_VIDEO(CHID(kst11, krepDefault), "proj5.avi", fTrue)
REP_VIDEO(CHID(kst12, krepDefault), "proj6.avi", fTrue)
CREATE_ANIM("")
ChangeStateThis(kst1 + (::gdCurrProj - 1));
ENDCHUNK
// -----------------------------------------------------
// The frame behind the text
// -----------------------------------------------------
GOBCHUNK("Gadget text area", kidGadgetWord, gokkNoHit)
DEFAULT_POSITION(0, 0, 200)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)
ENDCHUNK
REP_MBMP(CHID(kst1, krepDefault), "studio\bmp\gdword.bmp")
CREATE_ANIM("Text box created")
CreateChildThis(kidGadgetTextBox, kidGadgetTextBox);
ENDCHUNK
// -----------------------------------------------------
// The "fill" is the area that is writable on the word bitmap
// -----------------------------------------------------
GOBCHUNK("Gadget text box fill", kidGadgetTextBox, gokkNoHit)
DEFAULT_POSITION(0, 0, 200)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)
ENDCHUNK
REP_FILL(CHID(kst1, krepDefault), "Text Box Fill", kTextBoxFillLeft, kTextBoxFillTop, kTextBoxFillRight, kTextBoxFillBottom, Transparent, Transparent)
PATTERN_0
ENDCHUNK
// -----------------------------------------------------
// The "fill" is behind the locker bmps, lockers parent
// -----------------------------------------------------
GOBCHUNK("Gadget locker fill", kidGadgetLockerFill, gokkNoHit)
DEFAULT_POSITION(0, 0, 200)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)
ENDCHUNK
REP_FILL(CHID(kst1, krepDefault), "Locker Fill", kLockerFillLeft, kLockerFillTop, kLockerFillRight, kLockerFillBottom, Palette(20), Transparent)
PATTERN_50X
ENDCHUNK
CREATE_ANIM("gadget created")
CreateChildThis(kidGadgetLockerPict, kidGadgetLockerPict);
ENDCHUNK
// -----------------------------------------------------
// The picture in the gadgets locker area
// -----------------------------------------------------
GOBCHUNK("Gadget locker picture", kidGadgetLockerPict, gokkNoHit)
DEFAULT_POSITION(0, 0, 100)
ACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)
ENDCHUNK
REP_MBMP(kcell1, "studio\bmp\pnshot7.bmp")
REP_MBMP(kcell2, "studio\bmp\pnshot7a.bmp")
REP_MBMP(kcell3, "studio\bmp\pnshot7b.bmp")
REP_MBMP(kcell4, "studio\bmp\pnshot7c.bmp")
REP_MBMP(kcell5, "studio\bmp\pnshot7d.bmp")
REP_MBMP(kcell6, "studio\bmp\pnshot7e.bmp")
REP_MBMP(kcell7, "studio\bmp\pnshot7f.bmp")
REP_MBMP(kcell8, "studio\bmp\pnshot5.bmp")
REP_MBMP(kcell9, "studio\bmp\pnshot5a.bmp")
REP_MBMP(kcell10, "studio\bmp\pnshot5b.bmp")
REP_MBMP(kcell11, "studio\bmp\pnshot5c.bmp")
REP_MBMP(kcell12, "studio\bmp\pnshot5d.bmp")
REP_MBMP(kcell13, "studio\bmp\pnshot9a.bmp")
REP_MBMP(kcell14, "studio\bmp\pnshot9b.bmp")
REP_MBMP(kcell15, "studio\bmp\pnshot9c.bmp")
// Review::temps - need bitmaps for project 6
REP_MBMP(kcell16, "studio\bmp\pnshot4.bmp")
REP_MBMP(kcell17, "studio\bmp\pnshot4a.bmp")
REP_MBMP(kcell18, "studio\bmp\pnshot4b.bmp")
REP_MBMP(kcell19, "studio\bmp\pnshot4c.bmp")
REP_MBMP(kcell20, "studio\bmp\pnshot4d.bmp")
REP_MBMP(kcell21, "studio\bmp\pnshot4e.bmp")
REP_MBMP(kcell22, "studio\bmp\pnshot6.bmp")
REP_MBMP(kcell23, "studio\bmp\pnshot6a.bmp")
REP_MBMP(kcell24, "studio\bmp\pnshot6b.bmp")
REP_MBMP(kcell25, "studio\bmp\pnshot6c.bmp")
REP_MBMP(kcell26, "studio\bmp\pnshot6d.bmp")
REP_MBMP(kcell27, "studio\bmp\pnshot6e.bmp")
REP_MBMP(kcell28, "studio\bmp\pnshot6f.bmp")
REP_MBMP(kcell29, "studio\bmp\pnshot6g.bmp")
REP_MBMP(kcell30, "studio\bmp\pnshot6h.bmp")
REP_MBMP(kcell31, "studio\bmp\pnshot6i.bmp")
REP_MBMP(kcell32, "studio\bmp\pnshot8.bmp")
REP_MBMP(kcell33, "studio\bmp\pnshot8a.bmp")
REP_MBMP(kcell34, "studio\bmp\pnshot8b.bmp")
REP_MBMP(kcell35, "studio\bmp\pnshot8c.bmp")
REP_MBMP(kcell36, "studio\bmp\pnshot8d.bmp")
REP_MBMP(kcell37, "studio\bmp\pnclosed.bmp")
REP_ANIM(CHID(kst1, krepDefault), "Show closed locker")
Cell(kcell37, 0, 0, 1);
ENDCHUNK
REP_ANIM(CHID(kst2, krepDefault), "Show first step of current project")
Cell((kcell1 + ::gdProjEnd[::gdCurrProj - 1] + ::gdCurrStep - 1) , 0, 0, 1);
ENDCHUNK
// -------------------------------------------------------
// Up and down selector arrows function
// -------------------------------------------------------
HELP_SCRIPT(ktpcNewMovie)
// 0 means play sound, else see what button was hit
If (_parm[0] != 0);
// try another movie
If (_parm[0] == 1);
// clear existing moving in studio
EnqueueCid(cidNew, khidStudio, 0, 0, 0, 0);
// if we are past step 1 save stuff will come up, need to handle it
If (::gdCurrStep > 1);
FilterCmdsGob(kidGadgetParent, cidQuerySaveDocResult, kidNil, kchidScript3);
FilterCmdsGob(kidGadgetParent, cidPortfolioResult, kidNil, kchidScript4);
DestroyGob(kgobProjectHot);
Else;
If (::gdUpSelected == fTrue);
RunScriptGob(kidGadgetSelectorUp, kchidScript1);
Else;
RunScriptGob(kidGadgetSelectorDown, kchidScript1);
End;
DestroyGob(kidGadgetAlertGlass);
End;
// continue with current project
Else;
DestroyGob(kidGadgetAlertGlass);
End;
Return(fTrue);
Else;
// If (._cnoSound != cnoNil && ::fMelAudio);
StopSoundClass(0, sclHelpSoundClass);
// PlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);
// End;
End;
ENDCHUNK
// -------------------------------------------------------
// Cancel button function
// -------------------------------------------------------
HELP_SCRIPT(ktpcProjectCancel)
// 0 means play sound, else see what button was hit
If(_parm[0] != 0);
// work on your own
If (_parm[0] == 1);
// work on my own case
RunScriptGob(kidGadgetCancel, kchidScript1);
DestroyGob(kidGadgetAlertGlass);
// go to projects room
Elif (_parm[0] == 2);
If (::gdCurrStep > 1);
FilterCmdsGob(kidGadgetParent, cidQuerySaveDocResult, kidNil, kchidScript5);
FilterCmdsGob(kidGadgetParent, cidPortfolioResult, kidNil, kchidScript6);
DestroyGob(kgobProjectHot);
End;
// go back to the projects room case
ENABLEACCEL(fFalse);
EnqueueCid(cidLoadBuilding, 0, 0, 0, 0, 0);
// continue project
Else;
DestroyGob(kidGadgetAlertGlass);
End;
Return(fTrue);
Else;
fMelAudio = GetProp( kpridMcZeeAudio ) & kflgMelAudio;
If (._cnoSound != cnoNil && !fMelAudio);
StopSoundClass(0, sclHelpSoundClass);
PlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);
End;
End;
ENDCHUNK