void GameController::UsingTitle() { //Press W,S to select the menuitem. //Press J to use the menuitem. SetPosition(62, 20); cout << " " << flush; switch (hitkey) { case TITLE_MENU_UP: {//Move the '->' up. if (Scene.GetTitleCursorPositionY() >= 16) { SetPosition(Scene.GetTitleCursorPositionX(), Scene.GetTitleCursorPositionY()); cout << " " << flush; Scene.SetTitleCursorPositionY(Scene.GetTitleCursorPositionY() - 2); }; break; } case TITLE_MENU_DOWN: {//Move the '->' down. if (Scene.GetTitleCursorPositionY() <= 18) { SetPosition(Scene.GetTitleCursorPositionX(), Scene.GetTitleCursorPositionY()); cout << " " << flush; Scene.SetTitleCursorPositionY(Scene.GetTitleCursorPositionY() + 2); }; break; } case TITLE_MENU_PRESS: { switch (Scene.GetTitleCursorPositionY()) { case 14: { Scene.TitleClear(); game_start = true; }; break; case 16: { Scene.DrawSelectSavedDataArea(); SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << "->" << flush; //The followings are the operations of reading the saved data. while (1) { if (_kbhit()) { hitkey = _getch(); if (hitkey == 'k') { Scene.SelectSavedDataAreaClear(); break; } switch (tolower(hitkey)) { case TITLE_MENU_UP: { if (Scene.GetSavedDataCursorPositionY() >= 12) { SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << " " << flush; Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() - 1); } }break; case TITLE_MENU_DOWN: { if (Scene.GetSavedDataCursorPositionY() <= 19) { SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << " " << flush; Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() + 1); } }break; case TITLE_MENU_PRESS: { //The class FileIO will start to work here. switch (Scene.GetSavedDataCursorPositionY())//The cursor's y position will decide which data to be changed. { case 11: { FileIO fileIO; fileIO.ReadSavedData("saveddata1.txt"); //Then the important information in the game will be initialized. }break; case 12: { FileIO fileIO; fileIO.ReadSavedData("saveddata2.txt"); }break; case 13: { FileIO fileIO; fileIO.ReadSavedData("saveddata3.txt"); }break; case 14: { FileIO fileIO; fileIO.ReadSavedData("saveddata4.txt"); }break; case 15: { FileIO fileIO; fileIO.ReadSavedData("saveddata5.txt"); }break; case 16: { FileIO fileIO; fileIO.ReadSavedData("saveddata6.txt"); }break; case 17: { FileIO fileIO; fileIO.ReadSavedData("saveddata7.txt"); }break; case 18: { FileIO fileIO; fileIO.ReadSavedData("saveddata8.txt"); }break; case 19: { FileIO fileIO; fileIO.ReadSavedData("saveddata9.txt"); }break; case 20: { FileIO fileIO; fileIO.ReadSavedData("saveddata10.txt"); }break; } }break; } SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << "->" << flush; } } }; break; case 18: { }; break; case 20:exit(0); break; } }break; default: break; } if (!game_start)//Avoid drawing '->' in the scene again when the game starts. { SetPosition(Scene.GetTitleCursorPositionX(), Scene.GetTitleCursorPositionY()); cout << "->" << flush; } }
void GameController::UsingMenu() { //Press O,L to select the menuitem. //Press P to use the menuitem. SetPosition(62, 20); cout << " " << flush; switch (hitkey) { case MENU_UP: {//Move the '->' up. if (Scene.GetMenuPositionY() >= 4) { SetPosition(Scene.GetMenuPositionX(), Scene.GetMenuPositionY()); cout << " " << flush; Scene.SetMenuPositionY(Scene.GetMenuPositionY() - 2); } }; break; case MENU_DOWN: {//Move the '->' down. if (Scene.GetMenuPositionY() <= 12) { SetPosition(Scene.GetMenuPositionX(), Scene.GetMenuPositionY()); cout << " " << flush; Scene.SetMenuPositionY(Scene.GetMenuPositionY() + 2); } }; break; case MENU_PRESS: { switch (Scene.GetMenuPositionY()) { case 2: { Scene.DrawStatusArea(); while (1) { if (_kbhit()) { hitkey = _getch(); if (hitkey == 'k') { Scene.AreasClear(); Scene.RedrawCharaters(); break; } } } }; break; case 4: { Scene.DrawItemsArea(); while (1) { if (_kbhit()) { hitkey = _getch(); if (hitkey == 'k') { Scene.AreasClear(); Scene.RedrawCharaters(); break; } } } }; break; case 6: { Scene.DrawTechniquesArea(); while (1) { if (_kbhit()) { hitkey = _getch(); if (hitkey == 'k') { Scene.AreasClear(); Scene.RedrawCharaters(); break; } } } }break; case 8: { Scene.DrawMap(); while (1) { //The followings are the operations of the map. if (_kbhit()) { MapSystem Map; SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY()); cout << " " << endl; SetPosition(62, 10); cout << " " << flush; hitkey = _getch(); if (hitkey == 'k') { Scene.MapClear(); Scene.RedrawCharaters(); break;//If 'k' is pressed, the player will exit the map. } switch (tolower(hitkey)) { case MOVE_UP: { SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY()); } break; case MOVE_DOWN: { SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY()); } break; case MOVE_LEFT: { SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY()); }break; case MOVE_RIGHT: { SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY()); } break; default: SetPosition(Map.GetMapCursorPositionX(), Map.GetMapCursorPositionY()); break; } cout << "->" << flush; } } }; break; case 10: { Scene.DrawAccomplishmentsArea(); while (1) { if (_kbhit()) { hitkey = _getch(); if (hitkey == 'k') { Scene.AreasClear(); Scene.RedrawCharaters(); break; } } } }break; case 12: { Scene.DrawSelectSavedDataArea(); SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << "->" << flush; //The followings are the operations of reading the saved data. while (1) { if (_kbhit()) { hitkey = _getch(); if (hitkey == 'k') { Scene.SelectSavedDataAreaClear(); Scene.RedrawCharaters(); break; } switch (hitkey) { case MENU_UP: { if (Scene.GetSavedDataCursorPositionY() >= 12) { SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << " " << flush; Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() - 1); } }break; case MENU_DOWN: { if (Scene.GetSavedDataCursorPositionY() <= 19) { SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << " " << flush; Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() + 1); } }break; case MENU_PRESS: { //The class FileIO will start to work here. switch (Scene.GetSavedDataCursorPositionY())//The cursor's y position will decide which data to be changed. { case 11: { fileIO.ReadSavedData("saveddata1.txt"); //Then the important information in the game will be initialized. }break; case 12: { fileIO.ReadSavedData("saveddata2.txt"); }break; case 13: { fileIO.ReadSavedData("saveddata3.txt"); }break; case 14: { fileIO.ReadSavedData("saveddata4.txt"); }break; case 15: { fileIO.ReadSavedData("saveddata5.txt"); }break; case 16: { fileIO.ReadSavedData("saveddata6.txt"); }break; case 17: { fileIO.ReadSavedData("saveddata7.txt"); }break; case 18: { fileIO.ReadSavedData("saveddata8.txt"); }break; case 19: { fileIO.ReadSavedData("saveddata9.txt"); }break; case 20: { fileIO.ReadSavedData("saveddata10.txt"); }break; } }break; } SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << "->" << flush; } } }; break; case 14: { Scene.DrawSelectSavedDataArea(); SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << "->" << flush; while (1) { if (_kbhit()) { hitkey = _getch(); if (hitkey == 'k') { Scene.SelectSavedDataAreaClear(); Scene.RedrawCharaters(); break; } switch (tolower(hitkey)) { case MENU_UP: { if (Scene.GetSavedDataCursorPositionY() >=12) { SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << " " << flush; Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() - 1); } }break; case MENU_DOWN: { if (Scene.GetSavedDataCursorPositionY() <= 19) { SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << " " << flush; Scene.SetSavedDataCursorPositionY(Scene.GetSavedDataCursorPositionY() + 1); } }break; } SetPosition(Scene.GetSavedDataCursorPositionX(), Scene.GetSavedDataCursorPositionY()); cout << "->" << flush; } } }; break; default:; break; } }; break; } SetPosition(Scene.GetMenuPositionX(), Scene.GetMenuPositionY()); cout << "->" << flush; }