And last but not least...!
- menus.hCode
#ifndef MENU_H
#define MENU_H
void Start_Game();
int Main_Callback(int, bool, int);
int Options_Callback(int, bool, int);
int AdvOptions_Callback(int, bool, int);
int NumSnakes = 1;
int ctr = 0;
char *Difficulty[] = {
"Easy ",
"Medium",
"Hard "
};
void LoadValues() {
/* Show the "loaded" values */
PlaceCursor(41, 11);
printf("%i ", Snake.at(ctr).Player);
PlaceCursor(44, 12);
printf("%i ", NumSnakes);
PlaceCursor(38, 13);
printf("%s", Difficulty[Snake.at(ctr).Difficulty]);
PlaceCursor(33, 14);
printf("%i", Snake.at(ctr).Speed);
PlaceCursor(32, 10);
printf(" ");
PlaceCursor(32, 10);
printf("%s", Snake.at(ctr).Name);
/* Print the new color! */
PlaceCursor(33, 16);
SetColor(Snake.at(ctr).Color, BLACK);
printf("Û ****@");
PlaceCursor(33, 17);
SetColor(WHITE, BLACK);
printf("%i", Snake.at(ctr).MaxLives);
return;
}
void Display_Help_Menu() {
SetColor(WHITE, BLACK);
DrawBox(35, 15, 26, 8);
SetColor(BLACK, BLACK);
FillBox(33, 13, 27, 9, ' ');
SetColor(RED, BLACK);
PlaceCursor(30, 9); printf("MOVING - DIRECTIONAL KEYS");
SetColor(WHITE, BLACK);
PlaceCursor(27, 11); printf("UP ARROW - Moves Snake up");
PlaceCursor(27, 12); printf("DOWN ARROW - Moves Snake down");
PlaceCursor(27, 13); printf("LEFT ARROW - Moves Snake left");
PlaceCursor(27, 14); printf("RIGHT ARROW - Moves Snake right");
SetColor(RED, BLACK);
PlaceCursor(30, 16); printf("SCORE - HOW TO GET IT");
SetColor(WHITE, BLACK);
PlaceCursor(27, 17); printf("You eat rats! Based on the");
PlaceCursor(27, 18); printf("difficulty level you get:");
PlaceCursor(27, 19); printf("Easy - 12 points");
PlaceCursor(27, 20); printf("Normal - 8 points");
PlaceCursor(27, 21); printf("Hard - 4 points");
SetColor(BLACK, BLACK);
PlaceCursor(0, 0);
cin.get();
ClearConsole(BLACK, BLACK);
Menu.DisplayMenu(CYAN, BLACK);
return;
}
void Display_Credits_Menu() {
SetColor(WHITE, BLACK);
DrawBox(40, 20, 26, 8);
SetColor(BLACK, BLACK);
FillBox(38, 18, 27, 9, ' ');
SetColor(RED, BLACK);
PlaceCursor(30, 9); printf("GAME DESIGN");
SetColor(WHITE, BLACK);
PlaceCursor(27, 10); printf("Danielle \"Dani\"");
SetColor(RED, BLACK);
PlaceCursor(30, 12); printf("PROJECT MANAGER");
SetColor(WHITE, BLACK);
PlaceCursor(27, 13); printf("Danielle \"Dani\"");
SetColor(RED, BLACK);
PlaceCursor(30, 15); printf("LEAD PROGRAMMER/PROGRAMMERS");
SetColor(WHITE, BLACK);
PlaceCursor(27, 16); printf("Danielle \"Dani\"");
SetColor(RED, BLACK);
PlaceCursor(30, 18); printf("LEAD SOUND/AUDIO DESIGNER");
SetColor(WHITE, BLACK);
PlaceCursor(27, 19); printf("Magic");
SetColor(RED, BLACK);
PlaceCursor(30, 21); printf("GAME TESTING");
SetColor(WHITE, BLACK);
PlaceCursor(27, 22); printf("Danielle \"Dani\"");
cin.get();
ClearConsole(BLACK, BLACK);
Menu.DisplayMenu(CYAN, BLACK);
return;
}
void CycleSnake(const int Top, const int Bottom, const int Left, const int Right) {
/* Snake controls (values):
Up - 0x0A
Down - 0x0B
Left - 0x0C
Right 0x0D
*/
for (int x = 0; x < DemoSnake.size(); x++) {
if (DemoSnake.at(x).GetXPos(0) == Right && DemoSnake.at(x).GetYPos(0) == Top) {
DemoSnake.at(x).SendSnakeMsg(0x0B); }
if (DemoSnake.at(x).GetYPos(0) == Bottom && DemoSnake.at(x).GetXPos(0) == Right) {
DemoSnake.at(x).SendSnakeMsg(0x0C); }
if (DemoSnake.at(x).GetXPos(0) == Left && DemoSnake.at(x).GetYPos(0) == Bottom) {
DemoSnake.at(x).SendSnakeMsg(0x0A); }
if (DemoSnake.at(x).GetYPos(0) == Top && DemoSnake.at(x).GetXPos(0) == Left) {
DemoSnake.at(x).SendSnakeMsg(0x0D); }
DemoSnake.at(x).DrawSnake();
PlaceCursor(0, 0);
SetColor(BLACK, BLACK);
}
return;
}
void MainMenu() {
Menu.SetLoopValue(1, 22, 17, 52); /* Snake's cage dimensions to cycle around */
DemoSnake.at(0).SendSnakeMsg(0x0D); /* Go right */
DemoSnake.at(0).SetXPos(0);
DemoSnake.at(0).SetYPos(22);
DemoSnake.at(1).SendSnakeMsg(0x0D); /* Go right */
DemoSnake.at(1).SetXPos(20);
DemoSnake.at(1).SetYPos(22);
Menu.SetAttributes(30, 15, 20, 5, "SNAKE");
Menu.AddOptions(6, "Start game", "Options", "Scoreboard", "Credits", "Demo", "Quit");
Menu.Loop(Main_Callback, false, CycleSnake);
/* Fade out (fade the Snake out along with the menu) */
while (true) { CycleSnake(1, 22, 17, 52); if (_kbhit()) { break; } static int Timer =
GetTickCount(); if (GetTickCount() - Timer >= 100) { break; } }
Menu.DisplayMenu(WHITE, BLACK);
DemoSnake.at(0).Color = WHITE;
DemoSnake.at(1).Color = WHITE;
while (true) { CycleSnake(1, 22, 17, 52); if (_kbhit()) { break; } static int Timer =
GetTickCount(); if (GetTickCount() - Timer >= 100) { break; } }
Menu.DisplayMenu(GREY, BLACK);
DemoSnake.at(0).Color = GREY;
DemoSnake.at(1).Color = GREY;
while (true) { CycleSnake(1, 22, 17, 52); if (_kbhit()) { break; } static int Timer =
GetTickCount(); if (GetTickCount() - Timer >= 100) { break; } }
Menu.DisplayMenu(DARK_WHITE, BLACK);
DemoSnake.at(0).Color = DARK_WHITE;
DemoSnake.at(1).Color = DARK_WHITE;
while (true) { CycleSnake(1, 22, 17, 52); if (_kbhit()) { break; } static int Timer =
GetTickCount(); if (GetTickCount() - Timer >= 100) { break; } }
Menu.DisplayMenu(BLACK, BLACK);
DemoSnake.at(0).Color = BLACK;
DemoSnake.at(1).Color = BLACK;
ClearConsole(BLACK, BLACK); /* Reset the screen for another program */
PlaceCursor(0, 0);
return;
}
void OptionsMenu() {
Menu.SetAttributes(30, 15, 20, 5, "OPTIONS");
Menu.AddOptions(11, "Adv. Options", "Assistance Options", "Name: ", "Snake editing: ",
"Snakes (players): ", "Difficulty: ", "Speed: ", "Randomize Color", "Color: ", "Lives: ",
"Back");
Menu.DisplayMenu(CYAN, BLACK);
LoadValues();
Menu.Loop(Options_Callback, false);
return;
}
int Assistance_Callback(int CurrItem, bool ExitMenu, int Key) {
char *LifeWarning[] = { "On", "Off" };
switch (CurrItem) {
case 0: {
if (Key != 5) {
if (Key == 10 && ctr < NumSnakes - 1) { ctr++; }
if (Key == 15 && ctr > 0) { ctr--; }
PlaceCursor(41, 8);
printf("%i ", Snake.at(ctr).Player);
PlaceCursor(40, 10);
printf("%s ", LifeWarning[Snake.at(ctr).LifeWarning]);
PlaceCursor(0, 0);
}
} break;
case 1: {
if (Key != 5) {
if (Key == 10 && NumSnakes < 8) { Snake.push_back(CREATE_SNAKE(NumSnakes +
1, VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT)); NumSnakes++; sprintf(Snake.at(NumSnakes - 1).Name,
"PLAYER %i", NumSnakes); }
if (Key == 15 && NumSnakes > 1) { NumSnakes--; if (ctr > NumSnakes - 1) {
ctr--; } Snake.pop_back(); }
PlaceCursor(41, 8);
printf("%i ", Snake.at(ctr).Player);
PlaceCursor(44, 9);
printf("%i ", NumSnakes);
PlaceCursor(40, 10);
printf("%s ", LifeWarning[Snake.at(ctr).LifeWarning]);
PlaceCursor(0, 0);
}
} break;
case 2: {
if (Key != 5) {
if (Key == 10) { Snake.at(ctr).LifeWarning = false; }
if (Key == 15) { Snake.at(ctr).LifeWarning = true; }
PlaceCursor(40, 10);
printf("%s ", LifeWarning[Snake.at(ctr).LifeWarning]);
PlaceCursor(0, 0);
}
} break;
case 3: {
if (Key == 5) {
ExitMenu = true;
Menu.Clear(CYAN, BLACK);
Menu.SetAttributes(30, 15, 20, 5, "OPTIONS");
Menu.AddOptions(11, "Adv. Options", "Assistance Options", "Name: ", "Snake
editing: ", "Snakes (players): ", "Difficulty: ", "Speed: ", "Randomize Color", "Color: ",
"Lives: ", "Back");
Menu.DisplayMenu(CYAN, BLACK);
}
} break;
case 666: {
ExitMenu = true;
Menu.Clear(CYAN, BLACK);
Menu.SetAttributes(30, 15, 20, 5, "OPTIONS");
Menu.AddOptions(11, "Adv. Options", "Assistance Options", "Name: ", "Snake
editing: ", "Snakes (players): ", "Difficulty: ", "Speed: ", "Randomize Color", "Color: ",
"Lives: ", "Back");
Menu.DisplayMenu(CYAN, BLACK);
} break;
}
return ExitMenu;
}
void AssistanceMenu() {
char *LifeWarning[] = { "On", "Off" };
Menu.SetAttributes(30, 15, 20, 5, "ASSISTANCE");
Menu.AddOptions(4, "Snake editing: ", "Snakes (players): ", "Life Warning:", "Back");
Menu.DisplayMenu(CYAN, BLACK);
PlaceCursor(41, 8);
printf("%i", Snake.at(ctr).Player);
PlaceCursor(44, 9);
printf("%i", NumSnakes);
PlaceCursor(40, 10);
printf("%s ", LifeWarning[Snake.at(ctr).LifeWarning]);
Menu.Loop(Assistance_Callback, false);
return;
}
void AdvOptionsMenu() {
Menu.SetAttributes(30, 15, 20, 5, "ADV. OPTIONS");
Menu.AddOptions(5, "Snake editing: ", "Snakes (players): ", "Set snake controls", "Set
board dimensions", "Back");
Menu.DisplayMenu(CYAN, BLACK);
PlaceCursor(41, 8);
printf("%i ", Snake.at(ctr).Player);
PlaceCursor(44, 9);
printf("%i ", NumSnakes);
Menu.Loop(AdvOptions_Callback, false);
return;
}
void ScoreboardMenu() {
ClearConsole(BLACK, BLACK);
/* Open the file (binary format) */
ifstream in("HS.dat", ios::in | ios::binary);
/* Read the file into the scores vector - if it doesn't exist, exit */
in.read((char *)&SnakeScores[0].Score, sizeof(CREATE_SNAKE_SCORES) * 8);
in.close();
SetColor(GREY, BLACK);
PlaceCursor(5, 0); printf("*-----------------------------------------------------------
----------*");
PlaceCursor(5, 1); printf("| Player Name Score Total Time Color Size
Difficulty |");
PlaceCursor(5, 2); printf("*-----------------------------------------------------------
----------*");
for (int x = 7; x >= 0; x--) {
PlaceCursor(5, 17 - x - x); printf("*");
SetColor(WHITE, BLACK);
PlaceCursor(7, 17 - x - x); printf("%i.", 8 - x);
PlaceCursor(11, 17 - x - x); printf("%s", SnakeScores[x].Name);
PlaceCursor(24, 17 - x - x); printf("%i", SnakeScores[x].Score);
PlaceCursor(33, 17 - x - x); printf("%i", SnakeScores[x].TotalGameTime);
SetColor(SnakeScores.at(x).Color, BLACK);
PlaceCursor(47, 17 - x - x); printf("Û ****@");
SetColor(WHITE, BLACK);
PlaceCursor(56, 17 - x - x); printf("%i", SnakeScores[x].Size);
PlaceCursor(64, 17 - x - x); printf("%s", Difficulty[SnakeScores.at(x).Difficulty]);
SetColor(GREY, BLACK);
PlaceCursor(75, 17 - x - x); printf("*");
PlaceCursor(5, 18 - x - x); printf("*----------------------------------------------
-----------------------*");
}
cin.get();
ClearConsole(BLACK, BLACK);
Menu.DisplayMenu(CYAN, BLACK);
return;
}
int Main_Callback(int CurrItem, bool ExitMenu, int Key) {
switch (CurrItem) {
case 0: if (Key == 5) { Start_Game(); Menu.DisplayMenu(CYAN, BLACK); } break;
case 1: if (Key == 5) { srand(time(NULL)); OptionsMenu(); } break;
case 2: if (Key == 5) { ScoreboardMenu(); } break;
case 3: if (Key == 5) { Display_Credits_Menu(); } break;
case 4: if (Key == 5) { StartDemoSnake(); } break;
case 5: if (Key == 5) { ExitMenu = true; } break;
case 666: ExitMenu = true; break;
}
return ExitMenu;
}
int SetupControls(int CurrItem, bool ExitMenu, int Key) {
switch (CurrItem) {
case 0: {
if (Key == 5) {
long startText = GetTickCount();
long stopText = startText - 500;
int KeyHit = 0;
while (true) {
SetColor(WHITE, BLACK);
FLASH("UP", 31, 13, startText);
SetColor(BLACK, BLACK);
FLASH(" \b", 31, 13, stopText);
if (_kbhit()) {
/* Get the key (and reset _kbhit() */
KeyHit = _getch();
/* if it's an extended key, get it! */
if (KeyHit == 224) { KeyHit = _getch(); }
break;
}
}
SetColor(WHITE, BLACK);
PlaceCursor(31, 13);
printf("UP");
PlaceCursor(39, 13);
printf("%c ", KeyHit);
Snake.at(ctr).SetUpArrow(KeyHit);
}
} break;
case 1: {
if (Key == 5) {
long startText = GetTickCount();
long stopText = startText - 500;
int KeyHit = 0;
while (true) {
SetColor(WHITE, BLACK);
FLASH("DOWN", 31, 14, startText);
SetColor(BLACK, BLACK);
FLASH(" \b", 31, 14, stopText);
if (_kbhit()) {
/* Get the key (and reset _kbhit() */
KeyHit = _getch();
/* if it's an extended key, get it! */
if (KeyHit == 224) { KeyHit = _getch(); }
break;
}
}
SetColor(WHITE, BLACK);
PlaceCursor(31, 14);
printf("DOWN");
PlaceCursor(39, 14);
printf("%c ", KeyHit);
Snake.at(ctr).SetDownArrow(KeyHit);
}
} break;
case 2: {
if (Key == 5) {
long startText = GetTickCount();
long stopText = startText - 500;
int KeyHit = 0;
while (true) {
SetColor(WHITE, BLACK);
FLASH("LEFT", 31, 15, startText);
SetColor(BLACK, BLACK);
FLASH(" \b", 31, 15, stopText);
if (_kbhit()) {
/* Get the key (and reset _kbhit() */
KeyHit = _getch();
/* if it's an extended key, get it! */
if (KeyHit == 224) { KeyHit = _getch(); }
break;
}
}
SetColor(WHITE, BLACK);
PlaceCursor(31, 15);
printf("LEFT");
PlaceCursor(39, 15);
printf("%c ", KeyHit);
Snake.at(ctr).SetLeftArrow(KeyHit);
}
} break;
case 3: {
if (Key == 5) {
long startText = GetTickCount();
long stopText = startText - 500;
int KeyHit = 0;
while (true) {
SetColor(WHITE, BLACK);
FLASH("RIGHT", 31, 16, startText);
SetColor(BLACK, BLACK);
FLASH(" \b", 31, 16, stopText);
if (_kbhit()) {
/* Get the key (and reset _kbhit() */
KeyHit = _getch();
/* if it's an extended key, get it! */
if (KeyHit == 224) { KeyHit = _getch(); }
break;
}
}
SetColor(WHITE, BLACK);
PlaceCursor(31, 16);
printf("RIGHT");
PlaceCursor(39, 16);
printf("%c ", KeyHit);
Snake.at(ctr).SetRightArrow(KeyHit);
}
} break;
case 4: {
if (Key == 5) { ExitMenu = true; }
} break;
case 666: {
ExitMenu = true;
} break;
}
return ExitMenu;
}
int AdvOptions_Callback(int CurrItem, bool ExitMenu, int Key) {
switch (CurrItem) {
case 0: {
if (Key != 5) {
if (Key == 10 && ctr < NumSnakes - 1) { ctr++; }
if (Key == 15 && ctr > 0) { ctr--; }
PlaceCursor(41, 8);
printf("%i ", Snake.at(ctr).Player);
}
} break;
case 1: {
if (Key != 5) {
if (Key == 10 && NumSnakes < 8) { Snake.push_back(CREATE_SNAKE(NumSnakes +
1, VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT)); NumSnakes++; sprintf(Snake.at(NumSnakes - 1).Name,
"PLAYER %i", NumSnakes); }
if (Key == 15 && NumSnakes > 1) { NumSnakes--; if (ctr > NumSnakes - 1) {
ctr--; } Snake.pop_back(); }
PlaceCursor(41, 8);
printf("%i ", Snake.at(ctr).Player);
PlaceCursor(44, 9);
printf("%i ", NumSnakes);
}
} break;
case 2: {
if (Key == 5) {
Menu.Store();
Menu.SetAttributes(20, 9, 25, 10, "CONTROLS");
Menu.AddOptions(5, "UP =", "DOWN =", "LEFT =", "RIGHT =", "Back");
Menu.DisplayMenu(CYAN, BLACK);
PlaceCursor(39, 13);
printf("%c", Snake.at(ctr).GetUpArrow());
PlaceCursor(39, 14);
printf("%c", Snake.at(ctr).GetDownArrow());
PlaceCursor(39, 15);
printf("%c", Snake.at(ctr).GetLeftArrow());
PlaceCursor(39, 16);
printf("%c", Snake.at(ctr).GetRightArrow());
Menu.Loop(SetupControls, false);
Menu.Restore(CYAN, BLACK);
PlaceCursor(41, 8);
printf("%i ", Snake.at(ctr).Player);
PlaceCursor(44, 9);
printf("%i ", NumSnakes);
}
} break;
case 3: {
if (Key == 5) {
Menu.Clear(CYAN, BLACK);
Snake.at(ctr).UserSelectedDimensions();
Menu.SetArrow(7);
Menu.DisplayMenu(CYAN, BLACK);
PlaceCursor(41, 8);
printf("%i ", Snake.at(ctr).Player);
PlaceCursor(44, 9);
printf("%i ", NumSnakes);
}
} break;
case 4: {
if (Key == 5) {
ExitMenu = true;
Menu.Clear(CYAN, BLACK);
Menu.SetAttributes(30, 15, 20, 5, "OPTIONS");
Menu.AddOptions(11, "Adv. Options", "Assistance Options", "Name: ", "Snake
editing: ", "Snakes (players): ", "Difficulty: ", "Speed: ", "Randomize Color", "Color: ",
"Lives: ", "Back");
Menu.DisplayMenu(CYAN, BLACK);
}
} break;
case 666: {
ExitMenu = true;
Menu.Clear(CYAN, BLACK);
Menu.SetAttributes(30, 15, 20, 5, "OPTIONS");
Menu.AddOptions(11, "Adv. Options", "Assistance Options", "Name: ", "Snake
editing: ", "Snakes (players): ", "Difficulty: ", "Speed: ", "Randomize Color", "Color: ",
"Lives: ", "Back");
Menu.DisplayMenu(CYAN, BLACK);
} break;
}
return ExitMenu;
}
int Options_Callback(int CurrItem, bool ExitMenu, int Key) {
switch (CurrItem) {
case 0: {
if (Key == 5) {
AdvOptionsMenu();
LoadValues();
}
} break;
case 1: {
if (Key == 5) {
AssistanceMenu();
LoadValues();
}
} break;
case 2: {
if (Key == 5) {
PlaceCursor(32, 10);
printf(" ");
SetColor(WHITE, BLACK);
PlaceCursor(32, 10);
cin.getline(Snake.at(ctr).Name, 14);
FlushConsoleInputBuffer(InHandle);
_flushall();
}
} break;
case 3: {
if (Key != 5) {
if (Key == 10 && ctr < NumSnakes - 1) { ctr++; LoadValues(); }
if (Key == 15 && ctr > 0) { ctr--; LoadValues(); }
}
} break;
case 4: {
if (Key != 5) {
if (Key == 10 && NumSnakes < 8) { Snake.push_back(CREATE_SNAKE(NumSnakes +
1, VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT)); NumSnakes++; sprintf(Snake.at(NumSnakes - 1).Name,
"PLAYER %i", NumSnakes); }
if (Key == 15 && NumSnakes > 1) { NumSnakes--; if (ctr > NumSnakes - 1) {
ctr--; LoadValues(); } Snake.pop_back(); }
PlaceCursor(41, 11);
printf("%i ", Snake.at(ctr).Player);
PlaceCursor(44, 12);
printf("%i ", NumSnakes);
}
} break;
case 5: {
if (Key != 5) {
if (Key == 10 && Snake.at(ctr).Difficulty < 2) { Snake.at(ctr).Difficulty++;
}
if (Key == 15 && Snake.at(ctr).Difficulty > 0) { Snake.at(ctr).Difficulty--;
}
PlaceCursor(38, 13);
printf("%s", Difficulty[Snake.at(ctr).Difficulty]);
}
} break;
case 6: {
if (Key != 5) {
PlaceCursor(33, 14);
SetColor(BLACK, BLACK);
printf(" ", Snake.at(ctr).Speed);
if (Key == 10 && Snake.at(ctr).Speed < 50) { Snake.at(ctr).Speed++; }
if (Key == 15 && Snake.at(ctr).Speed > 0) { Snake.at(ctr).Speed--; }
PlaceCursor(33, 14);
SetColor(WHITE, BLACK);
printf("%i", Snake.at(ctr).Speed);
}
} break;
case 7: {
if (Key == 5) {
Snake.at(ctr).Color = rand() % 15;
/* Print the new (randomized) color! */
PlaceCursor(33, 16);
SetColor(Snake.at(ctr).Color, BLACK);
printf("Û ****@");
}
} break;
case 8: {
if (Key != 5) {
if (Key == 10 && Snake.at(ctr).Color < 15) { Snake.at(ctr).Color++; }
if (Key == 15 && Snake.at(ctr).Color > 0) { Snake.at(ctr).Color--; }
/* Print the new color! */
PlaceCursor(33, 16);
SetColor(Snake.at(ctr).Color, BLACK);
printf("Û ****@");
}
} break;
case 9: {
if (Key != 5) {
if (Key == 10 && Snake.at(ctr).MaxLives < 3) { Snake.at(ctr).MaxLives++; }
if (Key == 15 && Snake.at(ctr).MaxLives > 1) { Snake.at(ctr).MaxLives--; }
PlaceCursor(33, 17);
printf("%i", Snake.at(ctr).MaxLives);
/* Current Snakes lives need to be updated! */
Snake.at(ctr).Lives = Snake.at(ctr).MaxLives;
}
} break;
case 10: {
if (Key == 5) {
ExitMenu = true;
Menu.Clear(CYAN, BLACK);
Menu.SetAttributes(30, 15, 20, 5, "SNAKE");
Menu.AddOptions(6, "Start game", "Options", "Scoreboard", "Credits", "Demo",
"Quit");
Menu.DisplayMenu(CYAN, BLACK);
}
} break;
case 666: {
ExitMenu = true;
Menu.Clear(CYAN, BLACK);
Menu.SetAttributes(30, 15, 20, 5, "SNAKE");
Menu.AddOptions(6, "Start game", "Options", "Scoreboard", "Credits", "Demo",
"Quit");
Menu.DisplayMenu(CYAN, BLACK);
} break;
}
return ExitMenu;
}
#endif