📄 menu.cpp
字号:
return;
}
case STATE_FREEMODE:
SetState(STATE_PLAYERSELECTA, 1);
InitSel();
break;
}
ReleaseResource();
}
return;
case STATE_QUICKMODE:
GoBack(GetState());
return;
case STATE_BONUSSELECT:
m_player = _rand(0, m_nCount[STATE_PLAYERSELECTA]-1);
if (m_pInput->KeyPressed(VKEY_MENU_LEFT))
m_bnx = (m_bnx+m_bngames[m_bny]-1)%m_bngames[m_bny];
if (m_pInput->KeyPressed(VKEY_MENU_RIGHT))
m_bnx = (m_bnx+1)%m_bngames[m_bny];
if (m_pInput->KeyPressed(VKEY_MENU_UP))
m_bny = (m_bny+4)%5;
if (m_pInput->KeyPressed(VKEY_MENU_DOWN))
m_bny = (m_bny+1)%5;
if (m_bnx >= m_bngames[m_bny])
m_bnx = m_bngames[m_bny]-1;
m_nSel[s] = (m_bny+7)*m_bny/2+m_bnx;
if (m_pInput->KeyPressed(VKEY_MENU_SELECT))
if (m_pGame->m_SaveBonusCanSel[m_nSel[s]]) {
SetState(STATE_PLAYERSELECTA, 1);
ReleaseResource();
InitSel();
}
if (m_pInput->KeyPressed(VKEY_MENU_BACK)) {
ReleaseResource();
GoBack(GetState());
}
return;
case STATE_OPTION:
m_player = _rand(0, m_nCount[STATE_PLAYERSELECTA]-1);
HandleUD(s);
if (m_pInput->KeyPressed(VKEY_MENU_UP) || m_pInput->KeyPressed(VKEY_MENU_DOWN))
m_opAnim=0;
#ifdef LG
if (m_pInput->KeyPressed(VKEY_MENU_LEFT))
if (!m_nSel[s])
m_pEngine->GetSound()->SetVolume(m_pEngine->GetSound()->m_soundVolume==0?3:(m_pEngine->GetSound()->m_soundVolume-1));
if (m_pInput->KeyPressed(VKEY_MENU_RIGHT))
if (!m_nSel[s])
m_pEngine->GetSound()->SetVolume(m_pEngine->GetSound()->m_soundVolume==3?0:(m_pEngine->GetSound()->m_soundVolume+1));
#endif
if (m_pInput->KeyPressed(VKEY_MENU_SELECT))
switch (m_nSel[s]) {
case 0:
#ifdef LG
m_pEngine->GetSound()->SetVolume(m_pEngine->GetSound()->m_soundVolume==0?3:(m_pEngine->GetSound()->m_soundVolume-1));
#else
m_pEngine->m_bSoundVolumeSet=true;
if (m_pEngine->GetSound()->m_soundVolume == CSound::soundNone) {
m_pEngine->GetSound()->SetVolume(CSound::soundLoud);
if (CheckState(STATE_MAINMENU))
m_pEngine->GetSound()->playMIDI(ConvertSoundID(ID_SOUND_MENU),1);
} else {
m_pEngine->GetSound()->SetVolume(CSound::soundNone);
if (CheckState(STATE_MAINMENU))
m_pEngine->GetSound()->stopMIDI();
}
#endif
break;
case 1:
if (m_pEngine->GetSound()->GetVibOn())
m_pEngine->GetSound()->SetVibOn(0);
else
m_pEngine->GetSound()->SetVibOn(1);
break;
case 2:
if (((CGame *)m_pEngine->m_pGame)->IsShowHint())
((CGame *)m_pEngine->m_pGame)->SetIsShowHint(0);
else
((CGame *)m_pEngine->m_pGame)->SetIsShowHint(1);
break;
case 3:
if (m_pEngine->GetSound()->playerSoundOn)
m_pEngine->GetSound()->playerSoundOn = 0;
else
m_pEngine->GetSound()->playerSoundOn = 1;
break;
}
if (m_pInput->KeyPressed(VKEY_MENU_BACK)) {
m_pGame->saveGeneralRecord(SAVE_OPTION);
GoBack(GetState());
}
return;
case STATE_HELP:
m_player = _rand(0, m_nCount[STATE_PLAYERSELECTA]-1);
HandleLR(s);
if (m_pInput->KeyPressed(VKEY_MENU_BACK))
GoBack(GetState());
return;
case STATE_CREDIT:
m_player = _rand(0, m_nCount[STATE_PLAYERSELECTA]-1);
if (m_pInput->KeyPressed(VKEY_MENU_BACK))
GoBack(GetState());
return;
case STATE_PLAYERSELECTA:
case STATE_PLAYERSELECTB:
case STATE_BALLSELECTA:
case STATE_BALLSELECTB:
case STATE_ICONSELECTA:
case STATE_ICONSELECTB:
m_player = _rand(0, m_nCount[STATE_PLAYERSELECTA]-1);
if (m_bSelected) {
if (m_pInput->KeyPressed(VKEY_MENU_BACK)) {
m_bSelected = false;
return;
}
// wait for player anim action end
if ((m_iActAnim > m_pDataManager->m_pPlayer[m_nSel[s]].actionend[PLAYER_ANI_CHEER2]-m_pDataManager->m_pPlayer[m_nSel[s]].actionstart[PLAYER_ANI_CHEER2])
|| (s == STATE_BALLSELECTA) || (s == STATE_BALLSELECTB)
|| (s == STATE_ICONSELECTA) || (s == STATE_ICONSELECTB)) {
ReleaseResource();
m_bSelected = false;
switch (s) {
case STATE_PLAYERSELECTA:
if (CheckState(STATE_QUICKMODE)) {
if (m_nSel[STATE_PLAYERSELECTA] == m_nSel[STATE_PLAYERSELECTB] &&
m_nSel[STATE_CLOTHSELECTA] == m_nSel[STATE_CLOTHSELECTB])
m_nSel[STATE_CLOTHSELECTB] = (m_nSel[STATE_CLOTHSELECTB]+1)%m_nCount[STATE_CLOTHSELECTB];
SetState(STATE_STARTGAME);
} else
SetState(STATE_BALLSELECTA);
break;
case STATE_PLAYERSELECTB:
SetState(STATE_BALLSELECTB);
break;
case STATE_BALLSELECTA:
SetState(STATE_ICONSELECTA);
m_icontex[0].m_pData = NULL;
break;
case STATE_BALLSELECTB:
SetState(STATE_ICONSELECTB);
m_icontex[0].m_pData = NULL;
break;
case STATE_ICONSELECTA:
if (CheckState(STATE_FREEMODE) && GetSel(STATE_FREEMODE)) {
SetState(STATE_PLAYERSELECTB);
m_stateCloth = false;
} else
if (CheckState(STATE_STORYMODE))
SetState(STATE_STARTGAME);
else
SetState(STATE_LANESELECT, 1);
for (i=0; i<m_nCount[s]; i++)
m_pEngine->GetMem()->StackFree(NULL);
m_icontex[0].m_pData = NULL;
break;
case STATE_ICONSELECTB:
SetState(STATE_LANESELECT, 1);
for (i=0; i<m_nCount[s]; i++)
m_pEngine->GetMem()->StackFree(NULL);
m_icontex[0].m_pData = NULL;
break;
}
}
return;
}
if (m_pInput->KeyPressed(VKEY_MENU_LEFT)) {
m_iLastItem = m_nSel[s];
m_iSelAnim = 0;
if (m_stateCloth && ((s == STATE_PLAYERSELECTA) || (s == STATE_PLAYERSELECTB))) {
if (s == STATE_PLAYERSELECTA) {
if (--m_nSel[STATE_CLOTHSELECTA] < 0)
m_nSel[STATE_CLOTHSELECTA] += m_nCount[STATE_CLOTHSELECTA];
} else
if (--m_nSel[STATE_CLOTHSELECTB] < 0)
m_nSel[STATE_CLOTHSELECTB] += m_nCount[STATE_CLOTHSELECTB];
} else
if (--m_nSel[s] < 0)
m_nSel[s] += m_nCount[s];
}
if (m_pInput->KeyPressed(VKEY_MENU_RIGHT)) {
m_iLastItem = m_nSel[s];
m_iSelAnim = 0;
if (m_stateCloth && ((s == STATE_PLAYERSELECTA) || (s == STATE_PLAYERSELECTB))) {
if (s == STATE_PLAYERSELECTA) {
if (++m_nSel[STATE_CLOTHSELECTA] >= m_nCount[STATE_CLOTHSELECTA])
m_nSel[STATE_CLOTHSELECTA] -= m_nCount[STATE_CLOTHSELECTA];
} else
if (++m_nSel[STATE_CLOTHSELECTB] >= m_nCount[STATE_CLOTHSELECTB])
m_nSel[STATE_CLOTHSELECTB] -= m_nCount[STATE_CLOTHSELECTB];
} else
if (++m_nSel[s] >= m_nCount[s])
m_nSel[s] -= m_nCount[s];
}
if (m_pInput->KeyPressed(VKEY_MENU_SELECT)) {
if ((s == STATE_PLAYERSELECTA) || (s == STATE_PLAYERSELECTB))
if (m_pGame->m_SavePlayerCanSel[m_nSel[s]])
if (m_stateCloth) {
if ((s == STATE_PLAYERSELECTA) && m_pGame->m_SaveClothCanSel[GetSel(s)][GetSel(STATE_CLOTHSELECTA)] ||
(s == STATE_PLAYERSELECTB) && m_pGame->m_SaveClothCanSel[GetSel(s)][GetSel(STATE_CLOTHSELECTB)])
{
m_bSelected = true;
m_iActAnim = 0;
}
} else {
if (s == STATE_PLAYERSELECTA)
m_nSel[STATE_CLOTHSELECTA] = 0;
else
m_nSel[STATE_CLOTHSELECTB] = 0;
m_stateCloth = true;
}
if ((s == STATE_BALLSELECTA) || (s == STATE_BALLSELECTB))
if (m_pGame->m_SaveBallCanSel[m_nSel[s]]) {
m_bSelected = true;
m_iSelAnim = 0;
}
if ((s == STATE_ICONSELECTA) || (s == STATE_ICONSELECTB))
if (m_pGame->m_SaveBallIconCanSel[m_nSel[s]]) {
m_bSelected = true;
m_iSelAnim = 0;
}
}
if (m_pInput->KeyPressed(VKEY_MENU_BACK)) {
if (((s == STATE_PLAYERSELECTA) || (s == STATE_PLAYERSELECTB)) && m_stateCloth) {
m_stateCloth = false;
return;
}
if (s == STATE_PLAYERSELECTB)
m_stateCloth = true;
GoBack(GetState());
ReleaseResource();
m_iLastItem = m_nSel[GetState()];
m_iSelAnim = 0;
if ((s == STATE_ICONSELECTA) || (s == STATE_ICONSELECTB)) {
for (i=0; i<m_nCount[s]; i++)
m_pEngine->GetMem()->StackFree(NULL);
m_icontex[0].m_pData = NULL;
}
}
return;
case STATE_LANESELECT:
HandleLR(s);
if (m_pInput->KeyPressed(VKEY_MENU_SELECT))
if (m_pGame->m_SaveLaneCanSel[m_nSel[s]]) {
if (CheckState(STATE_ONLINEMODE))
SetState(STATE_INITCONNECT);
else
SetState(STATE_STARTGAME);
ReleaseResource();
}
if (m_pInput->KeyPressed(VKEY_MENU_BACK)) {
GoBack(GetState());
ReleaseResource();
}
return;
case STATE_PAUSE:
if (CheckState(STATE_BONUSMODE))
m_nCount[s] = 4;
else
if (!(CheckState(STATE_STORYMODE) && ((CGame*)m_pEngine->m_pGame)->m_saveFlag <= 0))
m_nCount[s] = 5;
else
m_nCount[s] = 6;
HandleUD(s);
if (m_pInput->KeyPressed(VKEY_MENU_UP) || m_pInput->KeyPressed(VKEY_MENU_DOWN))
m_psAnim=0;
if (m_pInput->KeyPressed(VKEY_MENU_SELECT)) {
SetState(pausesel[m_nSel[s]], 1);
if (pausesel[m_nSel[s]] == STATE_YESNO)
if ((CheckState(STATE_STORYMODE) && ((CGame*)m_pEngine->m_pGame)->m_saveFlag <= 0) && m_nSel[s] == 4)
m_iynState = YESNO_SAVEGAME;
else
m_iynState = YESNO_EXITFROMGAME;
}
if (m_pInput->KeyPressed(VKEY_MENU_BACK)) {
GoBack(GetState());
SetState(STATE_STARTGAME);
}
if(m_pInput->KeyPressed(VKEY_MENU_CLR)){//add by sunfisher, 12/28.
//((CGame*)(m_pEngine->m_pGame))->CheckSave();
ResetState();
}
return;
case STATE_YESNO:
HandleLR(s);
switch (m_iynState) {
case YESNO_EXITGAME:
if (m_pInput->KeyPressed(VKEY_MENU_SELECT)) {
int temp = m_mminAnim;
if (m_nSel[s])
GoBack(GetState());
else
ResetState();
m_mminAnim = temp;
}
if (m_pInput->KeyPressed(VKEY_MENU_BACK)) {
int temp = m_mminAnim;
GoBack(GetState());
m_mminAnim = temp;
}
break;
case YESNO_EXITFROMGAME:
if (m_pInput->KeyPressed(VKEY_MENU_SELECT))
if (!m_nSel[s])
if ((CheckState(STATE_STORYMODE) && ((CGame*)m_pEngine->m_pGame)->m_saveFlag <= 0))
m_iynState = YESNO_SAVEGAMEANDEXIT;
else
{
ResetState();
//((CGame*)(m_pEngine->m_pGame))->CheckSave();//Milo 04-13
}
else
GoBack(GetState());
if (m_pInput->KeyPressed(VKEY_MENU_BACK))
GoBack(GetState());
break;
case YESNO_SAVEGAMEANDEXIT:
if (m_pInput->KeyPressed(VKEY_MENU_SELECT)) {
ResetState();
if (!m_nSel[s]) {
m_pEngine->GetSound()->playMIDI(ConvertSoundID(ID_SOUND_SAVE_GAME),0);
((CGame*)(m_pEngine->m_pGame))->saveStoryInfo();
((CGame*)(m_pEngine->m_pGame))->saveGeneralRecord(SAVE_GENERAL);
}
}
if (m_pInput->KeyPressed(VKEY_MENU_BACK)) {
m_iynState = YESNO_EXITFROMGAME;
m_nSel[s] = 0;
}
break;
case YESNO_SAVEGAME:
if (m_pInput->KeyPressed(VKEY_MENU_SELECT)) {
GoBack(GetState());
if (!m_nSel[s]) {
m_pEngine->GetSound()->playMIDI(ConvertSoundID(ID_SOUND_SAVE_GAME),0);
//((CGame*)(m_pEngine->m_pGame))->GetScene()->;
((CGame*)(m_pEngine->m_pGame))->saveStoryInfo(0);//);
((CGame*)(m_pEngine->m_pGame))->saveGeneralRecord(SAVE_GENERAL);
}
}
if (m_pInput->KeyPressed(VKEY_MENU_BACK))
GoBack(GetState());
break;
case YESNO_NEWSTORY:
if (m_pInput->KeyPressed(VKEY_MENU_SELECT)) {
int temp = m_mminAnim;
GoBack(GetState());
m_mminAnim = temp;
SetState(STATE_STORYMODE);
if (!m_nSel[s]) {
InitSel();
((CGame*)m_pEngine->m_pGame)->clearStoryModeContinue();
SetState(STATE_PLAYERSELECTA, 1);
ReleaseResource();
}
}
if (m_pInput->KeyPressed(VKEY_MENU_BACK)) {
int temp = m_mminAnim;
GoBack(GetState());
m_mminAnim = temp;
SetState(STATE_STORYMODE);
}
break;
case YESNO_RESETONLINE:
if (m_pInput->KeyPressed(VKEY_MENU_SELECT)) {
int temp = m_mminAnim;
GoBack(GetState());
m_mminAnim = temp;
if (!m_nSel[s])
SetState(STATE_RESETPROFILE);
else
SetState(STATE_ONLINEMODE);
}
if (m_pInput->KeyPressed(VKEY_MENU_BACK)) {
int temp = m_mminAnim;
GoBack(GetState());
m_mminAnim = temp;
SetState(STATE_ONLINEMODE);
}
break;
}
break;
case STATE_NICKNAME:
if (m_getinfo) {
int j;
i = m_pEngine->GetNetwork()->getUserInfo(&j, &j, &j, &j, &j);
if (i>0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -