示例#1
0
/*
=================
PlayerModel_SaveChanges
=================
*/
static void PlayerModel_SaveChanges( void )
{
	trap_Cvar_Set( Com_LocalClientCvarName(s_playermodel.localClient, "model"), s_playermodel.modelskin );
	trap_Cvar_Set( Com_LocalClientCvarName(s_playermodel.localClient, "headmodel"), s_playermodel.modelskin );
	trap_Cvar_Set( Com_LocalClientCvarName(s_playermodel.localClient, "team_model"), s_playermodel.modelskin );
	trap_Cvar_Set( Com_LocalClientCvarName(s_playermodel.localClient, "team_headmodel"), s_playermodel.modelskin );
}
示例#2
0
/*
=================
PlayerModel_SetMenuItems
=================
*/
static void PlayerModel_SetMenuItems( void )
{
	int				i;
	int				maxlen;
	char			modelskin[64];
	char*			buffptr;
	char*			pdest;

	// name
	trap_Cvar_VariableStringBuffer( Com_LocalClientCvarName(s_playermodel.localClient, "name"), s_playermodel.playername.string, 16 );
	Q_CleanStr( s_playermodel.playername.string );

	// model
	trap_Cvar_VariableStringBuffer( Com_LocalClientCvarName(s_playermodel.localClient, "model"), s_playermodel.modelskin, 64 );
	
	// use default skin if none is set
	if (!strchr(s_playermodel.modelskin, '/')) {
		Q_strcat(s_playermodel.modelskin, 64, "/default");
	}
	
	// find model in our list
	for (i=0; i<s_playermodel.nummodels; i++)
	{
		// strip icon_
		buffptr  = s_playermodel.modelnames[i] + strlen("models/players/");
		pdest    = strstr(buffptr,"icon_");
		if (pdest)
		{
			Q_strncpyz(modelskin,buffptr,pdest-buffptr+1);
			strcat(modelskin,pdest + 5);
		}
		else
			continue;

		if (!Q_stricmp( s_playermodel.modelskin, modelskin ))
		{
			// found pic, set selection here		
			s_playermodel.selectedmodel = i;
			s_playermodel.modelpage     = i/MAX_MODELSPERPAGE;

			// seperate the model name
			maxlen = pdest-buffptr;
			if (maxlen > 16)
				maxlen = 16;
			Q_strncpyz( s_playermodel.modelname.string, buffptr, maxlen );
			Q_strupr( s_playermodel.modelname.string );

			// seperate the skin name
			maxlen = strlen(pdest+5)+1;
			if (maxlen > 16)
				maxlen = 16;
			Q_strncpyz( s_playermodel.skinname.string, pdest+5, maxlen );
			Q_strupr( s_playermodel.skinname.string );
			break;
		}
	}
}
示例#3
0
/*
=================
UI_TogglePlayerIngame
=================
*/
void UI_TogglePlayerIngame(int localClientNum)
{
	uiClientState_t	cs;

	trap_GetClientState( &cs );

	if (cs.clientNums[localClientNum] == -1) {
		trap_Cmd_ExecuteText( EXEC_APPEND, va("%s\n", Com_LocalClientCvarName(localClientNum, "dropin")) );
	} else {
		trap_Cmd_ExecuteText( EXEC_APPEND, va("%s\n", Com_LocalClientCvarName(localClientNum, "dropout")) );
	}

	UI_ForceMenuOff ();
}
示例#4
0
/*
===============
UI_JoystickMenu_Event
===============
*/
static void UI_JoystickMenu_Event( void *ptr, int event ) {
	if( event != QM_ACTIVATED ) {
		return;
	}

	if (((menucommon_s*)ptr)->id >= ID_JOYSTICK && ((menucommon_s*)ptr)->id < ID_JOYSTICK + MAX_JOYSTICKS) {
		int joystick = ((menucommon_s*)ptr)->id - ID_JOYSTICK;
		int i;

		if (joystick == 0) {
			// Disable joystick
			trap_Cvar_SetValue(Com_LocalClientCvarName(joystickMenu.localClient, "in_joystick"), 0);
			trap_Cvar_SetValue(Com_LocalClientCvarName(joystickMenu.localClient, "in_joystickNo"), 0);
		} else {
			// Enable joystick
			trap_Cvar_SetValue(Com_LocalClientCvarName(joystickMenu.localClient, "in_joystick"), 1);
			trap_Cvar_SetValue(Com_LocalClientCvarName(joystickMenu.localClient, "in_joystickNo"), joystick-1);
		}

		// Disable last selected joystick.
		for (i = 0; i < MAX_JOYSTICKS; i++) {
			joystickMenu.joysticks[i].generic.flags |= QMF_PULSEIFFOCUS;
			joystickMenu.joysticks[i].generic.flags &= ~(QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS);
		}

		// Select joystick.
		((menucommon_s*)ptr)->flags &= ~QMF_PULSEIFFOCUS;
		((menucommon_s*)ptr)->flags |= (QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS);

		joystickMenu.changed = (joystick != joystickMenu.originalJoystick);
		return;
	}

	switch( ((menucommon_s*)ptr)->id ) {

	case ID_BACK:
		if (joystickMenu.changed) {
			trap_Cmd_ExecuteText( EXEC_APPEND, "in_restart\n" );
		}

		UI_PopMenu();
		break;
	}
}
示例#5
0
/*
===============
UI_Joystick_MenuInit
===============
*/
static void UI_Joystick_MenuInit( int localClient ) {
	int				y;
	int				i;
	int				joystick;

	UI_Joystick_Cache();

	memset( &joystickMenu, 0, sizeof(joystickMenu) );

	UI_Joystick_GetNames();

	joystickMenu.localClient = localClient;

	joystickMenu.menu.wrapAround = qtrue;
	joystickMenu.menu.fullscreen = qtrue;

	joystickMenu.banner.generic.type			= MTYPE_BTEXT;
	joystickMenu.banner.generic.x				= 320;
	joystickMenu.banner.generic.y				= 16;
	joystickMenu.banner.string					= "SELECT JOYSTICK";
	joystickMenu.banner.color					= color_white;
	joystickMenu.banner.style					= UI_CENTER;

	joystickMenu.framel.generic.type			= MTYPE_BITMAP;
	joystickMenu.framel.generic.name			= ART_FRAMEL;
	joystickMenu.framel.generic.flags			= QMF_INACTIVE;
	joystickMenu.framel.generic.x				= 0;
	joystickMenu.framel.generic.y				= 78;
	joystickMenu.framel.width  					= 256;
	joystickMenu.framel.height  				= 329;

	joystickMenu.framer.generic.type			= MTYPE_BITMAP;
	joystickMenu.framer.generic.name			= ART_FRAMER;
	joystickMenu.framer.generic.flags			= QMF_INACTIVE;
	joystickMenu.framer.generic.x				= 376;
	joystickMenu.framer.generic.y				= 76;
	joystickMenu.framer.width  					= 256;
	joystickMenu.framer.height  				= 334;

	y = (SCREEN_HEIGHT - MAX_JOYSTICKS * JOY_MENU_VERTICAL_SPACING) / 2;

	for (i = 0; i < MAX_JOYSTICKS; i++) {
		joystickMenu.joysticks[i].generic.type		= MTYPE_PTEXT;
		joystickMenu.joysticks[i].generic.flags		= QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS|QMF_SMALLFONT;
		joystickMenu.joysticks[i].generic.x			= 320;
		joystickMenu.joysticks[i].generic.y			= y;
		joystickMenu.joysticks[i].generic.id		= ID_JOYSTICK+i;
		joystickMenu.joysticks[i].generic.callback	= UI_JoystickMenu_Event;
		joystickMenu.joysticks[i].string			= joystickMenu.joystickNames[i];
		joystickMenu.joysticks[i].color				= color_red;
		joystickMenu.joysticks[i].style				= UI_CENTER|UI_SMALLFONT;

		if (i >= joystickMenu.numJoysticks) {
			joystickMenu.joysticks[i].generic.flags |= QMF_GRAYED;
		}

		y += JOY_MENU_VERTICAL_SPACING;
	}

	joystickMenu.back.generic.type				= MTYPE_BITMAP;
	joystickMenu.back.generic.name				= ART_BACK0;
	joystickMenu.back.generic.flags				= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
	joystickMenu.back.generic.id				= ID_BACK;
	joystickMenu.back.generic.callback			= UI_JoystickMenu_Event;
	joystickMenu.back.generic.x					= 0;
	joystickMenu.back.generic.y					= 480-64;
	joystickMenu.back.width						= 128;
	joystickMenu.back.height					= 64;
	joystickMenu.back.focuspic					= ART_BACK1;

	Menu_AddItem( &joystickMenu.menu, &joystickMenu.banner );
	Menu_AddItem( &joystickMenu.menu, &joystickMenu.framel );
	Menu_AddItem( &joystickMenu.menu, &joystickMenu.framer );

	for (i = 0; i < MAX_JOYSTICKS; i++) {
		Menu_AddItem( &joystickMenu.menu, &joystickMenu.joysticks[i] );
	}

	Menu_AddItem( &joystickMenu.menu, &joystickMenu.back );

	// Store original joystick
	if (trap_Cvar_VariableValue(Com_LocalClientCvarName(joystickMenu.localClient, "in_joystick")) == 0) {
		joystick = 0;
	} else {
		joystick = 1 + (int)trap_Cvar_VariableValue(Com_LocalClientCvarName(joystickMenu.localClient, "in_joystickNo"));
	}

	if (joystick < 0 || joystick >= joystickMenu.numJoysticks) {
		joystick = 0;
	}

	joystickMenu.originalJoystick = joystick;

	// Select joystick
	joystickMenu.joysticks[joystick].generic.flags &= ~QMF_PULSEIFFOCUS;
	joystickMenu.joysticks[joystick].generic.flags |= (QMF_HIGHLIGHT|QMF_HIGHLIGHT_IF_FOCUS);
}
示例#6
0
/*
========================
BG_RegisterClientCvars

Init client-side cvars in cgame and ui.
========================
*/
void BG_RegisterClientCvars(int maxSplitview) {
	int i;
	const char *name;
	const int userInfo[MAX_SPLITVIEW] = { CVAR_USERINFO, CVAR_USERINFO2, CVAR_USERINFO3, CVAR_USERINFO4 };
	const char *modelNames[MAX_SPLITVIEW] = { DEFAULT_MODEL, DEFAULT_MODEL2, DEFAULT_MODEL3, DEFAULT_MODEL4 };
	const char *headModelNames[MAX_SPLITVIEW] = { DEFAULT_HEAD, DEFAULT_HEAD2, DEFAULT_HEAD3, DEFAULT_HEAD4 };
	const char *teamModelNames[MAX_SPLITVIEW] = { DEFAULT_TEAM_MODEL, DEFAULT_TEAM_MODEL2, DEFAULT_TEAM_MODEL3, DEFAULT_TEAM_MODEL4 };
	const char *teamHeadModelNames[MAX_SPLITVIEW] = { DEFAULT_TEAM_HEAD, DEFAULT_TEAM_HEAD2, DEFAULT_TEAM_HEAD3, DEFAULT_TEAM_HEAD4 };

	for (i = 0; i < maxSplitview; i++) {
		if (i == 0) {
			name = DEFAULT_CLIENT_NAME;
		} else {
			name = va("%s%d", DEFAULT_CLIENT_NAME, i + 1);
		}

		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "name"), name, userInfo[i] | CVAR_ARCHIVE );

		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "model"), modelNames[i], userInfo[i] | CVAR_ARCHIVE );
		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "headmodel"), headModelNames[i], userInfo[i] | CVAR_ARCHIVE );

		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "team_model"), teamModelNames[i], userInfo[i] | CVAR_ARCHIVE );
		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "team_headmodel"), teamHeadModelNames[i], userInfo[i] | CVAR_ARCHIVE );

		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "color1"), va("%d", DEFAULT_CLIENT_COLOR1), userInfo[i] | CVAR_ARCHIVE );
		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "color2"), va("%d", DEFAULT_CLIENT_COLOR2), userInfo[i] | CVAR_ARCHIVE );

		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "handicap"), "100", userInfo[i] | CVAR_ARCHIVE );

		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "teamtask"), "0", userInfo[i] );

		// set to in ui before starting server
		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "teampref"), "", userInfo[i] );
		// clear team if was previously set (only want it used for one game)
		trap_Cvar_Set( Com_LocalClientCvarName(i, "teampref"), "" );

		// init autoswitch so the ui will have it correctly even
		// if the cgame hasn't been started
		trap_Cvar_Register(NULL, Com_LocalClientCvarName(i, "cg_autoswitch"), "1", CVAR_ARCHIVE);
	}

	trap_Cvar_Register(NULL, "cg_predictItems", "1", CVAR_USERINFO_ALL | CVAR_ARCHIVE );

	// cgame might not be initialized before menu is used
	trap_Cvar_Register(NULL, "cg_viewsize", "100", CVAR_ARCHIVE );
}