示例#1
0
/*
=================
PlayerModel_MenuKey
=================
*/
static sfxHandle_t PlayerModel_MenuKey(int key) {
	menucommon_s*	m;
	int				picnum;

	switch (key) {
		case K_KP_LEFTARROW:
		case K_LEFTARROW:
			m = Menu_ItemAtCursor(&s_playermodel.menu);
			picnum = m->id - ID_PLAYERPIC0;
			if (picnum >= 0 && picnum <= 15) {
				if (picnum > 0) {
					Menu_SetCursor(&s_playermodel.menu, s_playermodel.menu.cursor - 1);
					return (menu_move_sound);

				} else if (s_playermodel.modelpage > 0) {
					s_playermodel.modelpage--;
					Menu_SetCursor(&s_playermodel.menu, s_playermodel.menu.cursor + 15);
					PlayerModel_UpdateGrid();
					return (menu_move_sound);
				} else
					return (menu_buzz_sound);
			}
			break;

		case K_KP_RIGHTARROW:
		case K_RIGHTARROW:
			m = Menu_ItemAtCursor(&s_playermodel.menu);
			picnum = m->id - ID_PLAYERPIC0;
			if (picnum >= 0 && picnum <= 15) {
				if ((picnum < 15) && (s_playermodel.modelpage*MAX_MODELSPERPAGE + picnum + 1 < s_playermodel.nummodels)) {
					Menu_SetCursor(&s_playermodel.menu, s_playermodel.menu.cursor + 1);
					return (menu_move_sound);
				} else if ((picnum == 15) && (s_playermodel.modelpage < s_playermodel.numpages - 1)) {
					s_playermodel.modelpage++;
					Menu_SetCursor(&s_playermodel.menu, s_playermodel.menu.cursor - 15);
					PlayerModel_UpdateGrid();
					return (menu_move_sound);
				} else
					return (menu_buzz_sound);
			}
			break;

		case K_MOUSE2:
			trap_Cvar_Set("headmodel", s_playermodel.modelskin);
			trap_Cvar_Set("team_headmodel", s_playermodel.modelskin);
			PlayerModel_SaveChanges();
			PlayerModel_UpdateModel();
			return (menu_buzz_sound);

		case K_ESCAPE:
			PlayerModel_SaveChanges();
			break;
	}

	return (Menu_DefaultKey(&s_playermodel.menu, key));
}
示例#2
0
/*
=================
PlayerModel_MenuEvent
=================
*/
static void PlayerModel_MenuEvent( void* ptr, int event )
{
	if (event != QM_ACTIVATED)
		return;

	switch (((menucommon_s*)ptr)->id)
	{
		case ID_PREVPAGE:
			if (s_playermodel.modelpage > 0)
			{
				s_playermodel.modelpage--;
				PlayerModel_UpdateGrid();
			}
			break;

		case ID_NEXTPAGE:
			if (s_playermodel.modelpage < s_playermodel.numpages-1)
			{
				s_playermodel.modelpage++;
				PlayerModel_UpdateGrid();
			}
			break;

		case ID_BACK:
			PlayerModel_SaveChanges();
			UI_PopMenu();
			break;
	}
}