示例#1
0
int selectMenu(char * passwordPointer,char reservedWords[][16],char savedPasswords[][16])
{
	int keyPressed;
	int selectedMenuItem = 0;

	printMenuItems(selectedMenuItem, passwordPointer, reservedWords, savedPasswords);

	// menu view
	do
	{
		keyPressed = _getch();

		switch (keyPressed)
		{
		case UPARROW:
			selectedMenuItem--;
			if(selectedMenuItem<0)
			{
				selectedMenuItem = LASTMENUITEM;
			}

			break;


		case DOWNARROW:
			selectedMenuItem++;
			if(selectedMenuItem>LASTMENUITEM)
			{
				selectedMenuItem = 0;
			}
			break;
		}
		printMenuItems(selectedMenuItem, passwordPointer, reservedWords, savedPasswords);
	}
	while (keyPressed!=ENTER);
	
	
return selectedMenuItem;
}
示例#2
0
bool showMenu()
{
	static int menu_pos_idx = 0;

	struct menu_list menu[] = {
		{"NEW GAME", 	360, 40}, /* [x,y] coordinates */
		{"HIGH SCORES",	380, 50},
		{"QUIT",		400, 60},
	};

	enum
	{
		NEWGAME,
		HIGHSCORE,
		QUIT
	};

	// Show BG
	TextureDraw(&menu_bg, 0, 0);

	// manage cursor: it can only move if the timer is over
	if (gameDelays.input_wait == 0)
	{
		if (IsPadPress(Pad1Down))
		{
			gameDelays.input_wait = INPUT_LAG;
			if (menu_pos_idx < 3)
			{
				menu_pos_idx++;
			}
		}

		if (IsPadPress(Pad1Up))
		{
			gameDelays.input_wait = INPUT_LAG;
			if (menu_pos_idx > 0)
			{
				menu_pos_idx--;
			}
		}

		if (IsPadPress(Pad1Cross))
		{
			gameDelays.waiting_screen = WAITING_SCREEN;
			switch(menu_pos_idx)
			{
				case NEWGAME:
				{
					setGameStatus(GAME_PLAYING);
				}; break;

				// TODO
				case HIGHSCORE:
				case QUIT:
					break;
			}
		}
	}

	printMenuItems(menu, menu_pos_idx);

	return true;
}
void printSubMenuItems(int selectedItem, int selectedSubmenuItem)
{
	int subMX = 15, subMY = 3, arrX = 12;
	printMenuItems(selectedItem);

	switch (selectedItem)
	{
		//file menu
		case 0:
			{
				// selecting an element in menu list
				int itemsSelection[FILEBACKBTN+1] = {2,2,2,2,2};
				itemsSelection[selectedSubmenuItem] = 1;

				setCursorPosition(arrX,subMY);
				printColouredText("=>",2);

				setCursorPosition(subMX,subMY);	
				printColouredText("  Load    ",itemsSelection[0]);

				setCursorPosition(subMX,++subMY);
				printColouredText("  Save    ", itemsSelection[1]);

				setCursorPosition(subMX,++subMY);
				printColouredText("  Save As ",itemsSelection[2]);

				setCursorPosition(subMX,++subMY);
				printColouredText("  Save Encrypted ",itemsSelection[3]);

				setCursorPosition(subMX,++subMY);
				printColouredText("  Back    ",itemsSelection[4]);

				break;
			   }
		//edit menu
		case 1:
			{
				// selecting an element in menu list
				int itemsSelection[EDITBACKBTN+1] = {2,2,2,2};
				itemsSelection[selectedSubmenuItem] = 1;

				setCursorPosition(arrX,++subMY);
				printColouredText("=>",2);

				setCursorPosition(subMX,subMY);	
				printColouredText("  Add     ",itemsSelection[0]);

				setCursorPosition(subMX,++subMY);
				printColouredText("  Edit    ", itemsSelection[1]);

				setCursorPosition(subMX,++subMY);
				printColouredText("  Remove  ",itemsSelection[2]);

				setCursorPosition(subMX,++subMY);
				printColouredText("  Back    ",itemsSelection[3]);
				break;
			   }
		//view menu
		case 2:
			{
				// selecting an element in menu list
				int itemsSelection[VIEWBACKBTN+1] = {2,2,2,2};
				itemsSelection[selectedSubmenuItem] = 1;
				
				setCursorPosition(arrX,(subMY+=2));
				printColouredText("=>",2);

				setCursorPosition(subMX,subMY);	
				printColouredText("  Print  ",itemsSelection[0]);

				setCursorPosition(subMX,++subMY);
				printColouredText("  Sort   ", itemsSelection[1]);

				setCursorPosition(subMX,++subMY);
				printColouredText("  Search ",itemsSelection[2]);

				setCursorPosition(subMX,++subMY);
				printColouredText("  Back   ",itemsSelection[3]);
				break;
			   }

	}

}