This commit is contained in:
Paul 2001-08-06 16:23:46 +00:00
parent d444c120cb
commit 99906d8bf0
2 changed files with 52 additions and 2 deletions

View file

@ -207,6 +207,9 @@ typedef enum
SC_SET_NEXT_SCENE, // nextScene SC_SET_NEXT_SCENE, // nextScene
SC_SET_NEXT_FMA_NUMBER, // fmaNumber SC_SET_NEXT_FMA_NUMBER, // fmaNumber
SC_SET_FADE_TO_BLACK, //
SC_SET_FADE_TO_WHITE, //
SC_SNAP_CAMERA_TO, // x,y SC_SNAP_CAMERA_TO, // x,y
SC_MOVE_CAMERA_TO, // x,y,frames SC_MOVE_CAMERA_TO, // x,y,frames
@ -218,6 +221,7 @@ typedef enum
SC_WAIT_ON_CAMERA_STOP, // (nonblocking) SC_WAIT_ON_CAMERA_STOP, // (nonblocking)
SC_WAIT_ON_CONVERSATION, // scriptId (nonblocking) SC_WAIT_ON_CONVERSATION, // scriptId (nonblocking)
SC_WAIT_ON_THROWN_ITEM, // item SC_WAIT_ON_THROWN_ITEM, // item
SC_WAIT_ON_FADE, //
SC_SET_ACTOR_VISIBILITY, // actor,on/off SC_SET_ACTOR_VISIBILITY, // actor,on/off
SC_SET_ACTOR_POSITION, // actor,x,y SC_SET_ACTOR_POSITION, // actor,x,y
@ -1090,13 +1094,16 @@ static const int s_FMAPlanktonScript[]=
SC_WAIT_ON_CAMERA_STOP, SC_WAIT_ON_CAMERA_STOP,
SC_WAIT_ON_ACTOR_STOP, FMA_ACTOR_SPONGEBOB, SC_WAIT_ON_ACTOR_STOP, FMA_ACTOR_SPONGEBOB,
SC_SNAP_CAMERA_TO, 94*16,5*16, SC_SNAP_CAMERA_TO, 91*16,5*16,
SC_SET_ACTOR_POSITION, FMA_ACTOR_SPONGEBOB,114*16,18*16, SC_SET_ACTOR_POSITION, FMA_ACTOR_SPONGEBOB,114*16,18*16,
SC_SET_ACTOR_FACING, FMA_ACTOR_SPONGEBOB,1, SC_SET_ACTOR_FACING, FMA_ACTOR_SPONGEBOB,1,
SC_WALK_ACTOR_TO_POSITION, FMA_ACTOR_SPONGEBOB,108*16,18*16,24, SC_WALK_ACTOR_TO_POSITION, FMA_ACTOR_SPONGEBOB,108*16,18*16,24,
SC_WAIT_ON_ACTOR_STOP, FMA_ACTOR_SPONGEBOB, SC_WAIT_ON_ACTOR_STOP, FMA_ACTOR_SPONGEBOB,
SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_IDLE,1, SC_SET_ACTOR_ANIM_STATE, FMA_ACTOR_SPONGEBOB,FMA_ANIM_IDLE,1,
SC_WAIT_ON_TIMER, 60,
SC_SET_FADE_TO_WHITE,
SC_WAIT_ON_FADE,
SC_WAIT_ON_TIMER, 60, SC_WAIT_ON_TIMER, 60,
SC_STOP SC_STOP
@ -1183,7 +1190,7 @@ static const int *s_fmaScripts[CFmaScene::NUM_FMA_SCRIPTS]=
int s_chosenScript=CFmaScene::FMA_SCRIPT__CH1FINISHED; int s_chosenScript=CFmaScene::FMA_SCRIPT__PLANKTON;
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
@ -1265,6 +1272,8 @@ void CFmaScene::init()
m_stillProcessingCommand=false; m_stillProcessingCommand=false;
m_doOtherProcessing=false; m_doOtherProcessing=false;
StopLoad(); StopLoad();
m_drawScreenAsWhite=false;
} }
@ -1311,6 +1320,16 @@ void CFmaScene::shutdown()
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
void CFmaScene::render() void CFmaScene::render()
{ {
if(m_drawScreenAsWhite)
{
POLY_F4 *f4;
f4=GetPrimF4();
setXYWH(f4,0,0,512,256);
setRGB0(f4,255,255,255);
AddPrimToList(f4,0);
return;
}
int i; int i;
ACTOR_DATA *actor; ACTOR_DATA *actor;
sItemData *item; sItemData *item;
@ -1666,6 +1685,16 @@ void CFmaScene::startNextScriptCommand()
selectFma((FMA_SCRIPT_NUMBER)*(m_pc++)); selectFma((FMA_SCRIPT_NUMBER)*(m_pc++));
break; break;
case SC_SET_FADE_TO_BLACK: //
m_pc++;
CFader::setFadingOut(CFader::BLACK_FADE);
break;
case SC_SET_FADE_TO_WHITE: //
m_pc++;
CFader::setFadingOut(CFader::WHITE_FADE);
break;
case SC_SNAP_CAMERA_TO: // x,y case SC_SNAP_CAMERA_TO: // x,y
m_pc++; m_pc++;
m_cameraPos.vx=*m_pc++; m_cameraPos.vx=*m_pc++;
@ -1713,6 +1742,10 @@ void CFmaScene::startNextScriptCommand()
m_stillProcessingCommand=true; m_stillProcessingCommand=true;
break; break;
case SC_WAIT_ON_FADE: //
m_stillProcessingCommand=true;
break;
case SC_SET_ACTOR_VISIBILITY: // actor,on/off case SC_SET_ACTOR_VISIBILITY: // actor,on/off
{ {
ACTOR_DATA *actor; ACTOR_DATA *actor;
@ -1887,6 +1920,8 @@ void CFmaScene::processCurrentScriptCommand()
case SC_USE_PARTY: // case SC_USE_PARTY: //
case SC_SET_NEXT_SCENE: // nextScene case SC_SET_NEXT_SCENE: // nextScene
case SC_SET_NEXT_FMA_NUMBER: // fmaNumber case SC_SET_NEXT_FMA_NUMBER: // fmaNumber
case SC_SET_FADE_TO_BLACK: //
case SC_SET_FADE_TO_WHITE: //
case SC_SNAP_CAMERA_TO: // x,y case SC_SNAP_CAMERA_TO: // x,y
case SC_MOVE_CAMERA_TO: // x,y,frames case SC_MOVE_CAMERA_TO: // x,y,frames
case SC_REGISTER_CONVERSATION: // scriptId case SC_REGISTER_CONVERSATION: // scriptId
@ -1982,6 +2017,19 @@ void CFmaScene::processCurrentScriptCommand()
} }
break; break;
case SC_WAIT_ON_FADE: //
if(!CFader::isFading())
{
m_pc++;
m_stillProcessingCommand=false;
m_drawScreenAsWhite=true;
}
else
{
m_doOtherProcessing=true;
}
break;
default: default:
ASSERT(!"Bad script command"); ASSERT(!"Bad script command");
break; break;

View file

@ -97,6 +97,8 @@ private:
int m_globalAnimationFlag; int m_globalAnimationFlag;
int m_readyToShutdown; int m_readyToShutdown;
int m_drawScreenAsWhite;
}; };