⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.cpp

📁 一个3D的保龄球的源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
						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 + -