📄 cscene.cpp
字号:
}
else
{
++m_frameIndex;
}
break;
}*/ // removed by MILO 04-22
if(withAI == 0) //without AI
{
if(!m_bMoving )
{
if(m_frameIndex>=15)
{
SetStage(DS_ROTATION_POWER_CONFIRM, withAI);
if( m_bIsTutStage )
{
m_iTutorialStage += TUTORIAL_DIRECTION;
m_bIsTutStage = false;
}
}
}
else
{
if(m_frameIndex == 1 && m_player->GetCurrentPower() == 80)
{
m_pEngine->GetSound()->playMIDI(ConvertSoundID(ID_SOUND_FLAMES),0); //Milo
}
int step = m_player->GetCurrentPower()/8+8;
m_ancPos += step;//the speed of the moving arrow depends on
if(m_player->GetIsFouls(m_ball.m_weight) == FOUL_TYPE_FASTER_DIRECTION)
{
m_ancPos += step*2;
}
if (m_ancPos > (240+(GET_PRECISION(m_player->m_precision)*2)))//m_player->m_strength*8)
{
m_ancPos = 0;
}
if (m_pInput->KeyPressed(VKEY_MENU_SELECT) )//|| m_m_pInput->KeyHold(VKEY_MENU_SELECT)) {
{
m_bMoving = false;
m_frameIndex = 0;
if( m_player->GetIsFouls(m_ball.m_weight) != FOUL_TYPE_FASTER_DIRECTION )
{
SetStage(DS_ROTATION_POWER_CONFIRM, withAI);
if( m_bIsTutStage )
{
m_iTutorialStage += TUTORIAL_DIRECTION;
m_bIsTutStage = false;
}
}
}
}
}
else //with AI
{
//m_bMoving = false;
SetStage(DS_ROTATION_POWER_CONFIRM, withAI);
}
++m_frameIndex;
break;
case DS_ROTATION_POWER_CONFIRM:
{
int i = m_player->PlayingAnimation(TRUE);
if ( i == PLAYER_ANI_FINISH || i == PLAYER_ANI_FOUL_FINISH)
{
if(i == PLAYER_ANI_FINISH) //normal
{
if(m_frameIndex > m_player->GetStopFrame() + 1)
{
SetStage(DS_BALL_RUNNING, withAI);
}
else
{
++m_frameIndex;
}
}
else //foul
{
if( m_player->m_iFoulAnimType == FOUL_LINE_ANIM )
{
setFoulStage(DS_PLAYER_FOULS, withAI);
}
else
{
setFoulStage(DS_PLAYER_FOULS2, withAI);
}
}
}
else
{
m_ball.StepWithPlayer(m_player, &m_vHandPos, FALSE);//ball follows the player...
}
saveReplayData(m_iSaveFrameCnt);
++m_iSaveFrameCnt;
}
break;
case DS_PLAYER_FOULS:
if (m_player->PlayingAnimation(TRUE) == PLAYER_ANI_FINISH
|| m_player->PlayingAnimation(TRUE) == PLAYER_ANI_FOUL_FINISH)
{
SetStage(DS_WAITING_TEN_SECOND);
}
++m_iBonusAni;
break;
case DS_PLAYER_FOULS2:
m_frameIndex++;
if( m_frameIndex > 20 )
{
if (m_frameIndex == 21)
{
m_pEngine->GetSound()->playMIDI(ConvertSoundID(ID_SOUND_AUD3),0);//ID_SOUND_AUD3),0); //ConvertSoundID(ID_SOUND_AUD_DEPRESS//SDF_MID_FOOT_FAULT
}
++m_iBonusAni;
}
if (m_player->PlayingAnimation(TRUE) == PLAYER_ANI_FINISH
|| m_player->PlayingAnimation(TRUE) == PLAYER_ANI_FOUL_FINISH)
{
if( m_frameIndex > 53 )
{
m_frameIndex = 0;
switchToWaiting();//SetStage(DS_WAITING_TEN_SECOND);
}
}
break;
case DS_BALL_RUNNING:
{
//for tutorial
if(m_frameIndex == 0 && !(m_iTutorialStage & TUTORIAL_SPIN_CONTROL))
{
setCurTutorialStage(TUTORIAL_SPIN_CONTROL, withAI);
m_frameIndex = 1;
break;
}
/* else
{
if( m_bIsTutStage && withAI == 0)
{
m_bIsTutStage = true;
if(m_pInput->KeyPressed(VKEY_MENU_SELECT))
{
m_frameIndex = 0;
m_iTutorialStage += TUTORIAL_SPIN_CONTROL;//TUTORIAL_FINISH;//TUTORIAL_DONE_SPIN_CONTROL;
m_bIsTutStage = false;
}
break;
}
}
*/
if(m_bIsTutStage && withAI == 0)
{
if(m_pInput->KeyPressed(gk_NUM4 | gk_NUM6)
|| (m_ball.GetPosition().y ) > LANE_LENGTH || m_ball.m_ballState != BALL_ONLANE)
{
m_iTutorialStage += TUTORIAL_SPIN_CONTROL;
m_bIsTutStage = false;
}
//break;
}
if( m_bWitheScreen == TRUE)
{
m_bWitheScreen = FALSE;
}
if(step(withAI))////in Game
{
m_bIsCollisionFinish = true;
break;
}
if ( (m_ball.GetPosition().y ) < LANE_WIDTH +LANE_LENGTH )
{
m_ball.SetRenderingProperty(m_nFrame);
}
else
{
m_object[RENDER_BALL]->SetHideProperty(TRUE);
}
int check = 0x0001;
for (i = 0; i < 10; ++i)
{
if ( ( (m_currentTenpinState & check) >> i == 1))
{
if (m_tenpin[i].m_tenpinState == TENPIN_STATE_OUTSIDE)
{
m_object[i]->SetHideProperty(TRUE);
}
}
check = check << 1;
}
coinCollisionOnLane();
//for FOV changing //Milo 12-28
//Qiu Li, 2005/1/14
if( !m_changeFOV )
//Qiu Li end
{
if(m_cCamera->m_bFinished )
{
if( !m_bReplay && m_collideLookType==0 )
{
int i=getRandomNumber(3);
m_collideLookType = i+1;
switch( m_collideLookType )
{
case COLLIDE_LOOK_FORWARD:
m_frameIndex += 6;
m_render3D.GetG3d()->setZDist(FOV_OTHERS - m_frameIndex); //Milo 12-28
break;
case COLLIDE_LOOK_CENTER:
if(!m_bIsDraw)
{
m_object[RENDER_SCENE]->SetHideProperty(true);
setCameraStage(CCSS_COLLIDE_CENTER);
}
else
{
//setCameraStage(CCSS_COLLIDE_RIGHT);
}
break;
case COLLIDE_LOOK_RIGHT:
setCameraStage(CCSS_COLLIDE_RIGHT);
break;
case COLLIDE_LOOK_BACK:
m_object[RENDER_PLAYER]->SetHideProperty(false);
setCameraStage(CCSS_COLLIDE_BACK);
break;
}
}
else if( m_collideLookType == COLLIDE_LOOK_FORWARD && m_frameIndex <= (FOV_OTHERS - FOV_FORWARD))
{
m_frameIndex += 6;
m_render3D.GetG3d()->setZDist(FOV_OTHERS - m_frameIndex); //Milo 12-28
}
}
}
saveReplayData(m_iSaveFrameCnt);
++m_iSaveFrameCnt;
}
break;
/*case DS_TUTORIAL:
{
if(m_pInput->KeyPressed(VKEY_MENU_SELECT))
{
m_curStage = m_lastStage;
m_iTutorialStage += 1;//DO TO NEXT TUTORIAL ; TUTORIAL_DONE;
}
}
break; */
case DS_COLLISION_FINISH:
case DS_COLLISION_FINISH_WITH_PLAYER_ANI:
{
int stage ;
if(((m_bAutoReplay == TRUE && m_bReplay == FALSE)
|| m_pInput->KeyPressed(gk_LSOFT)) && withAI ==0)//gk_POUND
{
m_iPlayerFinshAni = m_player->GetAnimationOption();
SetStage(DS_DELIVERY_REPLAY);
}
else
{
++m_frameIndex;
}
if (m_frameIndex > STOP_ON_FOULS_FEET * 2 ) /*with AI*/
{
stage = m_curStage == DS_COLLISION_FINISH ? DS_SHOW_GRABBING_ANIMATION
:DS_SHOW_GRABBING_ANIMATION_WITH_PLAYER_ANI;
SetStage(stage, withAI);
}
}
break;
case DS_PLAYER_FINISH_ANI:
{
if(m_pInput->KeyPressed(gk_NUM5|gk_MSOFT))
{
m_colAni = WITHOUT_ANI;
switchToWaiting();
}
else
{
if(m_pInput->KeyPressed(gk_LSOFT) && withAI ==0 && //gk_POUND
(m_colAni == ANI_FENCE_COLLISION || m_colAni == ANI_IN_GUTTER))
{
m_iPlayerFinshAni = m_player->GetAnimationOption();
SetStage(DS_DELIVERY_REPLAY);
}
else
{
if (m_player->PlayingAnimation(TRUE) == PLAYER_ANI_FINISH
|| m_player->PlayingAnimation(TRUE) == PLAYER_ANI_FOUL_FINISH)
{
if(m_frameIndex > m_player->GetStopFrame() + STOP_ON_FOULS_FEET)
{
m_colAni = WITHOUT_ANI;
SetStage(DS_WAITING_TEN_SECOND);
}
else
{
++m_frameIndex;
}
}
}
}
}
break;
case DS_WAITING_TEN_SECOND:
{
/*if(((m_bAutoReplay == TRUE && m_bReplay == FALSE)
|| m_pInput->KeyPressed(gk_POUND)) && withAI ==0)
{
//SetStage(DS_DELIVERY_REPLAY);
}
else
{
} */
++m_frameIndex;
if (m_frameIndex > STOP_ON_FOULS_FEET * 2) /*with AI*/
{
switchToWaiting();
}
}
break;
case DS_SHOW_GRABBING_ANIMATION:
case DS_SHOW_GRABBING_ANIMATION_WITH_PLAYER_ANI:
{
if(m_pInput->KeyPressed(gk_LSOFT) && withAI ==0)//gk_POUND
{
if(m_colAni == ANI_COLLISION_STRIKE || m_colAni == ANI_TURKEY_STRIKE)
{
m_iPlayerFinshAni = PLAYER_ANI_CHEER2;
}
m_currFrame = 0;
SetStage(DS_DELIVERY_REPLAY);
}
else
{
if(m_colAni == ANI_COLLISION_STRIKE || m_colAni == ANI_TURKEY_STRIKE)
{//play 3 strike shows
//strike
bool b = strikeRelaying();
//STRIKE FINISH
if(b)
{
int i = 0;
for (i=0;i<10;++i)
{
//if(m_tenpin[i].m_tenpinState != TENPIN_STATE_STAND)
{
m_tenpin[i].SetHideProperty(FALSE);
}
}
if(m_curCamera == CCSS_COLLIDE_RIGHT)// CCSS_COLLIDE_BACK)//Milo 04-11
{
//m_bAutoReplay = FALSE;
//m_object[RENDER_GRABBING_TENPIN]->SetHideProperty(FALSE);
//grabbingTenpins(FALSE,withAI);
//++m_iBonusAni;
//new Milo 03-31
//if(m_colAni == ANI_COLLISION_STRIKE || m_colAni == ANI_TURKEY_STRIKE)
m_bAutoReplay = TRUE;
m_currFrame = 0;
m_object[RENDER_BALL]->SetHideProperty(TRUE);
for(i=0;i<10;++i)// FOR TENPIN
{
m_tenpin[i].SetHideProperty(TRUE);
}
m_pEngine->GetSound()->playMIDI(ConvertSoundID(ID_SOUND_STRIKE),0); //sound for STRIKE
m_iPlayerFinshAni = m_player->GetAnimationOption();
if(withAI == 0)
{
SetStage(DS_DELIVERY_REPLAY);//DS_PLAYER_FINISH_ANI, withAI);
}
else
{
SetStage(DS_PLAYER_FINISH_ANI, withAI);
}
}
else
{
m_currFrame = 0;
++m_curCamera;
if(m_curCamera == CCSS_COLLIDE_RIGHT)
{
if(m_pEngine->GetSound()->GetVibOn() != false) //the strike did not have called it
{
m_pEngine->GetSound()->PlayVibrate();
}
}
setCameraStage(m_curCamera);
}
}
}
else if(m_colAni == ANI_COLLISION_SPARE)
{
m_bAutoReplay = TRUE;
m_currFrame = 0;
m_object[RENDER_BALL]->SetHideProperty(TRUE);
for(i=0;i<10;++i)// FOR TENPIN
{
m_tenpin[i].SetHideProperty(TRUE);
}
m_iPlayerFinshAni= m_player->GetAnimationOption();
if(withAI == 0)
{
SetStage(DS_DELIVERY_REPLAY);//DS_PLAYER_FINISH_ANI, withAI);
}
else
{
SetStage(DS_PLAYER_FINISH_ANI, withAI);
}
}
else
{
grabbingTenpins(FALSE,withAI);
++m_iBonusAni;
}
}
}
break;
case DS_DELIVERY_REPLAY:
if(m_pInput->KeyPressed(VKEY_MENU_NEXT) && !(m_bIsTutStage))// back
{
//switchToWaiting();
if(m_bTvOn == TV_ANI_SHOW)
{
setTvRollBack(1);
//for jump to next frame
//m_pEngine->GetSound()->stopMIDI();
//m_object[RENDER_TV]->SetCurrentFrame(TV_END);
//playingTvAni();
}
else
{
if(m_bTvAniPlaying)
{
//--m_iBonusAni;
//setTvRollBack(1);
m_pEngine->GetSound()->stopMIDI();
m_bTvAniPlaying = false;
}
else
{
setTvRollBack(0);
}
}
break;
}
if(m_bTvOn == TV_ANI_SHOW)
{
playingTvAni();
}
else if(m_bTvOn == TV_ANI_SHOW_DONE)
{
if(!m_bTvAniPlaying)
{
/*if (m_player->PlayingAnimation(TRUE) == PLAYER_ANI_FINISH
|| m_player->PlayingAnimation(TRUE) == PLAYER_ANI_FOUL_FINISH)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -