您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ trap_S_StartLocalSound函数代码示例

51自学网 2021-06-03 08:58:11
  C++
这篇教程C++ trap_S_StartLocalSound函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中trap_S_StartLocalSound函数的典型用法代码示例。如果您正苦于以下问题:C++ trap_S_StartLocalSound函数的具体用法?C++ trap_S_StartLocalSound怎么用?C++ trap_S_StartLocalSound使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了trap_S_StartLocalSound函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: CG_DrawPlayerWeaponIcon

/*==============CG_DrawPlayerWeaponIcon==============*/void CG_DrawPlayerWeaponIcon(rectDef_t *rect, int align, vec4_t *refcolor) {	int       size;	int       realweap;             // DHM - Nerve	qhandle_t icon;	float     scale, halfScale;	vec4_t    hcolor;	VectorCopy(*refcolor, hcolor);	hcolor[3] = 1.f;	if (cg.predictedPlayerEntity.currentState.eFlags & EF_MG42_ACTIVE ||	    cg.predictedPlayerEntity.currentState.eFlags & EF_MOUNTEDTANK) {		realweap = WP_MOBILE_MG42;	} else {		realweap = cg.predictedPlayerState.weapon;	}	size = weapIconDrawSize(realweap);	if (!size) {		return;	}	if (cg.predictedPlayerEntity.currentState.eFlags & EF_MOUNTEDTANK && cg_entities[cg_entities[cg_entities[cg.snap->ps.clientNum].tagParent].tankparent].currentState.density & 8) {		icon = cgs.media.browningIcon;	} else {		icon = cg_weapons[realweap].weaponIcon[1];	}	// pulsing grenade icon to help the player 'count' in their head	if (cg.predictedPlayerState.grenadeTimeLeft) {     // grenades and dynamite set this		// these time differently		if (realweap == WP_DYNAMITE) {			if (((cg.grenLastTime) % 1000) > ((cg.predictedPlayerState.grenadeTimeLeft) % 1000)) {				trap_S_StartLocalSound(cgs.media.grenadePulseSound4, CHAN_LOCAL_SOUND);			}		} else {			if (((cg.grenLastTime) % 1000) < ((cg.predictedPlayerState.grenadeTimeLeft) % 1000)) {				switch (cg.predictedPlayerState.grenadeTimeLeft / 1000) {				case 3:					trap_S_StartLocalSound(cgs.media.grenadePulseSound4, CHAN_LOCAL_SOUND);					break;				case 2:					trap_S_StartLocalSound(cgs.media.grenadePulseSound3, CHAN_LOCAL_SOUND);					break;				case 1:					trap_S_StartLocalSound(cgs.media.grenadePulseSound2, CHAN_LOCAL_SOUND);					break;				case 0:					trap_S_StartLocalSound(cgs.media.grenadePulseSound1, CHAN_LOCAL_SOUND);					break;				}			}		}		scale     = (float)((cg.predictedPlayerState.grenadeTimeLeft) % 1000) / 100.0f;		halfScale = scale * 0.5f;		cg.grenLastTime = cg.predictedPlayerState.grenadeTimeLeft;	} else {		scale = halfScale = 0;	}	if (icon) {		float x, y, w, h;		if (size == 1) {   // draw half width to match the icon asset			// start at left			x = rect->x - halfScale;			y = rect->y - halfScale;			w = rect->w / 2 + scale;			h = rect->h + scale;			switch (align) {			case ITEM_ALIGN_CENTER:				x += rect->w / 4;				break;			case ITEM_ALIGN_RIGHT:				x += rect->w / 2;				break;			case ITEM_ALIGN_LEFT:			default:				break;			}		} else {			x = rect->x - halfScale;			y = rect->y - halfScale;			w = rect->w + scale;			h = rect->h + scale;		}		trap_R_SetColor(hcolor);   // JPW NERVE		CG_DrawPic(x, y, w, h, icon);//.........这里部分代码省略.........
开发者ID:Exosum,项目名称:ETrun,代码行数:101,


示例2: UI_DrawPlayer

/*===============UI_DrawPlayer===============*/void UI_DrawPlayer( float x, float y, float w, float h, playerInfo_t *pi, int time ) {    refdef_t		refdef;    refEntity_t		legs;    refEntity_t		torso;    refEntity_t		head;    refEntity_t		gun;    refEntity_t		flash;    vec3_t			origin;    int				renderfx;    vec3_t			mins = {-16, -16, -24};    vec3_t			maxs = {16, 16, 32};    float			len;    float			xx;    if ( !pi->legsModel || !pi->torsoModel || !pi->headModel || !pi->animations[0].numFrames ) {        return;    }    // this allows the ui to cache the player model on the main menu    if (w == 0 || h == 0) {        return;    }    dp_realtime = time;    if ( pi->pendingWeapon != -1 && dp_realtime > pi->weaponTimer ) {        pi->weapon = pi->pendingWeapon;        pi->lastWeapon = pi->pendingWeapon;        pi->pendingWeapon = -1;        pi->weaponTimer = 0;        if( pi->currentWeapon != pi->weapon ) {            trap_S_StartLocalSound( weaponChangeSound, CHAN_LOCAL );        }    }    UI_AdjustFrom640( &x, &y, &w, &h );    y -= jumpHeight;    memset( &refdef, 0, sizeof( refdef ) );    memset( &legs, 0, sizeof(legs) );    memset( &torso, 0, sizeof(torso) );    memset( &head, 0, sizeof(head) );    refdef.rdflags = RDF_NOWORLDMODEL;    AxisClear( refdef.viewaxis );    refdef.x = x;    refdef.y = y;    refdef.width = w;    refdef.height = h;    refdef.fov_x = (int)((float)refdef.width / 640.0f * 90.0f);    xx = refdef.width / tan( refdef.fov_x / 360 * M_PI );    refdef.fov_y = atan2( refdef.height, xx );    refdef.fov_y *= ( 360 / (float)M_PI );    // calculate distance so the player nearly fills the box    len = 0.72 * ( maxs[2] - mins[2] );    origin[0] = len / tan( DEG2RAD(refdef.fov_x) * 0.5 );    origin[1] = 0.5 * ( mins[1] + maxs[1] );    origin[2] = -0.5 * ( mins[2] + maxs[2] );    refdef.time = dp_realtime;    trap_R_ClearScene();    // get the rotation information    UI_PlayerAngles( pi, legs.axis, torso.axis, head.axis );    // get the animation state (after rotation, to allow feet shuffle)    UI_PlayerAnimation( pi, &legs.oldframe, &legs.frame, &legs.backlerp,                        &torso.oldframe, &torso.frame, &torso.backlerp );    renderfx = RF_LIGHTING_ORIGIN | RF_NOSHADOW;    //    // add the legs    //    legs.hModel = pi->legsModel;    legs.customSkin = pi->legsSkin;    VectorCopy( origin, legs.origin );    VectorCopy( origin, legs.lightingOrigin );    legs.renderfx = renderfx;    VectorCopy (legs.origin, legs.oldorigin);    trap_R_AddRefEntityToScene( &legs );    if (!legs.hModel) {        return;    }//.........这里部分代码省略.........
开发者ID:LuckyBro,项目名称:sgfork,代码行数:101,


示例3: CG_SiegeRoundOver

void CG_SiegeRoundOver(centity_t *ent, int won){	int				myTeam;	char			teamstr[64];	char			appstring[1024];	char			soundstr[1024];	int				success = 0;	playerState_t	*ps = NULL;	if (!siege_valid)	{		CG_Error("ERROR: Siege data does not exist on client!/n");		return;	}	if (cg.snap)	{ //this should always be true, if it isn't though use the predicted ps as a fallback		ps = &cg.snap->ps;	}	else	{		ps = &cg.predictedPlayerState;	}	if (!ps)	{		assert(0);		return;	}	myTeam = ps->persistant[PERS_TEAM];	if (myTeam == TEAM_SPECTATOR)	{		return;	}	if (myTeam == SIEGETEAM_TEAM1)	{		Com_sprintf(teamstr, sizeof(teamstr), team1);	}	else	{		Com_sprintf(teamstr, sizeof(teamstr), team2);	}	if (BG_SiegeGetValueGroup(siege_info, teamstr, cgParseObjectives))	{		if (won == myTeam)		{			success = BG_SiegeGetPairedValue(cgParseObjectives, "wonround", appstring);		}		else		{			success = BG_SiegeGetPairedValue(cgParseObjectives, "lostround", appstring);		}		if (success)		{			CG_DrawSiegeMessage(appstring, 0);		}		appstring[0] = 0;		soundstr[0] = 0;		if (myTeam == won)		{			Com_sprintf(teamstr, sizeof(teamstr), "roundover_sound_wewon");		}		else		{			Com_sprintf(teamstr, sizeof(teamstr), "roundover_sound_welost");		}		if (BG_SiegeGetPairedValue(cgParseObjectives, teamstr, appstring))		{			Com_sprintf(soundstr, sizeof(soundstr), appstring);		}		/*		else		{			if (myTeam != won)			{				Com_sprintf(soundstr, sizeof(soundstr), DEFAULT_LOSE_ROUND);			}			else			{				Com_sprintf(soundstr, sizeof(soundstr), DEFAULT_WIN_ROUND);			}		}		*/		if (soundstr[0])		{			trap_S_StartLocalSound(trap_S_RegisterSound(soundstr), CHAN_ANNOUNCER);		}	}}
开发者ID:ForcePush,项目名称:OJPRPFZ,代码行数:98,


示例4: CG_CheckLocalSounds

/*==================CG_CheckLocalSounds==================*/void CG_CheckLocalSounds( playerState_t *ps, playerState_t *ops ){    int reward, delta;    // don't play the sounds if the player just spawned    if( ps->persistant[ PERS_SPECSTATE ] != ops->persistant[ PERS_SPECSTATE ] )        return;    //hitsound    delta = ps->persistant[PERS_HITS] - ops->persistant[PERS_HITS];    if (cg_hitsound.integer == 3)    {   if (delta > 165) //125            trap_S_StartLocalSound( cgs.media.hitSound[8], CHAN_LOCAL_SOUND );        else if (delta > 120) //100            trap_S_StartLocalSound( cgs.media.hitSound[7], CHAN_LOCAL_SOUND );        else if (delta > 85) //75            trap_S_StartLocalSound( cgs.media.hitSound[6], CHAN_LOCAL_SOUND );        else if (delta > 50)            trap_S_StartLocalSound( cgs.media.hitSound[5], CHAN_LOCAL_SOUND );        else if (delta > 25)            trap_S_StartLocalSound( cgs.media.hitSound[4], CHAN_LOCAL_SOUND );        else if (delta > 12)            trap_S_StartLocalSound( cgs.media.hitSound[3], CHAN_LOCAL_SOUND );        else if (delta > 8)            trap_S_StartLocalSound( cgs.media.hitSound[2], CHAN_LOCAL_SOUND );        else if (delta > 4)            trap_S_StartLocalSound( cgs.media.hitSound[1], CHAN_LOCAL_SOUND );        else if (delta > 0) //0 = no events            trap_S_StartLocalSound( cgs.media.hitSound[0], CHAN_LOCAL_SOUND );    }    else if (cg_hitsound.integer == 2)    {   if (delta > 8)            trap_S_StartLocalSound( cgs.media.hitSound[8], CHAN_LOCAL_SOUND );        else if (delta > 7)            trap_S_StartLocalSound( cgs.media.hitSound[7], CHAN_LOCAL_SOUND );        else if (delta > 6)            trap_S_StartLocalSound( cgs.media.hitSound[6], CHAN_LOCAL_SOUND );        else if (delta > 5)            trap_S_StartLocalSound( cgs.media.hitSound[5], CHAN_LOCAL_SOUND );        else if (delta > 4)            trap_S_StartLocalSound( cgs.media.hitSound[4], CHAN_LOCAL_SOUND );        else if (delta > 3)            trap_S_StartLocalSound( cgs.media.hitSound[3], CHAN_LOCAL_SOUND );        else if (delta > 2)            trap_S_StartLocalSound( cgs.media.hitSound[2], CHAN_LOCAL_SOUND );        else if (delta > 1)            trap_S_StartLocalSound( cgs.media.hitSound[1], CHAN_LOCAL_SOUND );        else if (delta > 0) //0 = no events            trap_S_StartLocalSound( cgs.media.hitSound[0], CHAN_LOCAL_SOUND );    }    else if (cg_hitsound.integer && (delta > 0)) //no tonal change        trap_S_StartLocalSound( cgs.media.hitSound[4], CHAN_LOCAL_SOUND );    //health changes of more than -1 should make pain sounds    //and don't play hurt sound if evolving    if( ps->stats[ STAT_HEALTH ] < ops->stats[ STAT_HEALTH ] - 1            && ps->stats[ STAT_CLASS ] == ops->stats[ STAT_CLASS ] )    {        float healthlost = ((ops->stats[ STAT_HEALTH ] - ps->stats[ STAT_HEALTH ])/ps->stats[ STAT_MAX_HEALTH ]);        if( ps->stats[ STAT_HEALTH ] > 0 ) {            CG_PainEvent( &cg.predictedPlayerEntity, ps->stats[ STAT_HEALTH ] );            //play critical hit! sound if lost > 30% hp            if (healthlost > 0.3)                trap_S_StartLocalSound( cgs.media.hitSound[9], CHAN_LOCAL_SOUND );        }    }    //Don't spam it if the user is spamming spacebar up a stair (Urasai! Annoying!)    if(cg_doublejumpsound.integer &&            ps->persistant[PERS_DOUBLEJUMPED] > ops->persistant[PERS_DOUBLEJUMPED])    {        trap_S_StartLocalSound( cgs.media.doublejumpsound, CHAN_LOCAL_SOUND );    }    // health changes of more than -1 should make pain sounds    if( ps->stats[ STAT_HEALTH ] < ops->stats[ STAT_HEALTH ] - 1 )    {        if( ps->stats[ STAT_HEALTH ] > 0 )            CG_PainEvent( &cg.predictedPlayerEntity, ps->stats[ STAT_HEALTH ] );    }    if( ( BG_UpgradeIsActive( UP_JETPACK, ps->stats ) ||            ( cg.predictedPlayerEntity.jetPackJumpTime + 1000 > cg.time &&              cg.predictedPlayerEntity.jetPackJumpTime + 250 < cg.time ) ) &&            ps->stats[ STAT_FUEL ] <= JETPACK_FUEL_LOW )    {        static int last = 0;        if( last + 740 < cg.time )        {            trap_S_StartSound( NULL, cg.predictedPlayerState.clientNum, CHAN_AUTO, cgs.media.jetpackLowFuelSound );            last = cg.time;        }    }//.........这里部分代码省略.........
开发者ID:ZdrytchX,项目名称:cuboid,代码行数:101,


示例5: Cmd_Argc

/**The string has been tokenized and can be retrieved withCmd_Argc() / Cmd_Argv()*/static void CG_ServerCommand(void){	const char	*cmd;	char		text[MAX_SAY_TEXT];	cmd = BG_Argv(0);	if (!cmd[0]) {		// server claimed the command		return;	}	if (!strcmp(cmd, "cp")) {		CG_CenterPrint(BG_Argv(1));		return;	}	if (!strcmp(cmd, "cs")) {		CG_ConfigStringModified();		return;	}	if (!strcmp(cmd, "pings")) {		CG_ParsePings();		return;	}	if (!strcmp(cmd, "tinfo")) {		CG_ParseTeamInfo();	}	if (!strcmp(cmd, "print")) {		CG_Printf("%s", BG_Argv(1));		return;	}	if (!strcmp(cmd, "screenprint")) {		Q_strncpyz(text, BG_Argv(1), sizeof text);		CG_AddScreenMessage(text, qfalse);		CG_Printf("%s/n", text);		return;	}	if (!strcmp(cmd, "s")) {		CG_ParseScores();		return;	}	if (!strcmp(cmd, "stats")) {		CG_ParseStats();		return;	}	if (!strcmp(cmd, "chat")) {		if (cg_teamChatsOnly.integer) {			return;		}		if (cg_teamChatBeep.integer) {			trap_S_StartLocalSound(cgs.media.talkSound, CHAN_LOCAL_SOUND);		}		Q_strncpyz(text, BG_Argv(1), sizeof text);		CG_RemoveChatEscapeChar(text);		CG_AddScreenMessage(text, qfalse);		CG_Printf("%s/n", text);		return;	}	if (!strcmp(cmd, "tchat")) {		if (cg_chatBeep.integer) {			trap_S_StartLocalSound(cgs.media.talkSound, CHAN_LOCAL_SOUND);		}		Q_strncpyz(text, BG_Argv(1), sizeof text);		CG_RemoveChatEscapeChar(text);		CG_AddScreenMessage(text, qtrue);		CG_Printf("%s/n", text);		return;	}	if (!strcmp(cmd, "map_restart")) {		CG_MapRestart();		return;	}	if (!strcmp(cmd, "remapShader") == 0) {		if (trap_Argc() == 4) {			char shader1[MAX_QPATH];			char shader2[MAX_QPATH];			char shader3[MAX_QPATH];			Q_strncpyz(shader1, BG_Argv(1), sizeof(shader1));			Q_strncpyz(shader2, BG_Argv(2), sizeof(shader2));			Q_strncpyz(shader3, BG_Argv(3), sizeof(shader3));			trap_R_RemapShader(shader1, shader2, shader3);		}//.........这里部分代码省略.........
开发者ID:baseas,项目名称:aftershock,代码行数:101,


示例6: CG_EntityEvent

//.........这里部分代码省略.........        {            CG_PainEvent( cent, es->eventParm );        }        break;    case EV_DEATH1:    case EV_DEATH2:    case EV_DEATH3:        trap_S_StartSound( NULL, es->number, CHAN_VOICE,                           CG_CustomSound( es->number, va( "*death%i.wav", event - EV_DEATH1 + 1 ) ) );        break;    case EV_OBITUARY:        CG_Obituary( es );        break;    case EV_GIB_PLAYER:        // no gibbing        break;    case EV_STOPLOOPINGSOUND:        trap_S_StopLoopingSound( es->number );        es->loopSound = 0;        break;    case EV_DEBUG_LINE:        CG_Beam( cent );        break;    case EV_BUILD_DELAY:        if ( clientNum == cg.predictedPlayerState.clientNum )        {            trap_S_StartLocalSound( cgs.media.buildableRepairedSound, CHAN_LOCAL_SOUND );            cg.lastBuildAttempt = cg.time;        }        break;    case EV_BUILD_REPAIR:        trap_S_StartSound( NULL, es->number, CHAN_AUTO, cgs.media.buildableRepairSound );        break;    case EV_BUILD_REPAIRED:        trap_S_StartSound( NULL, es->number, CHAN_AUTO, cgs.media.buildableRepairedSound );        break;    case EV_OVERMIND_ATTACK_1:    case EV_OVERMIND_ATTACK_2:        if ( cg.predictedPlayerState.persistant[ PERS_TEAM ] == TEAM_ALIENS )        {            trap_S_StartLocalSound( cgs.media.alienOvermindAttack, CHAN_ANNOUNCER );            CG_CenterPrint( va( "^%c%s", "31"[ event - EV_OVERMIND_ATTACK_1 ], _( "The Overmind is under attack!" ) ), 200, GIANTCHAR_WIDTH * 4 );        }        break;    case EV_OVERMIND_DYING:        if ( cg.predictedPlayerState.persistant[ PERS_TEAM ] == TEAM_ALIENS )        {            trap_S_StartLocalSound( cgs.media.alienOvermindDying, CHAN_ANNOUNCER );            CG_CenterPrint( _( "^1The Overmind is dying!" ), 200, GIANTCHAR_WIDTH * 4 );        }        break;
开发者ID:Gireen,项目名称:Unvanquished,代码行数:66,


示例7: CG_ConfigStringModified

/*================CG_ConfigStringModified================*/static void CG_ConfigStringModified( void ) {	const char	*str;	int		num;	num = atoi( CG_Argv( 1 ) );	// get the gamestate from the client system, which will have the	// new configstring already integrated	trap_GetGameState( &cgs.gameState );	// look up the individual string that was modified	str = CG_ConfigString( num );	// do something with it if necessary	if ( num == CS_MUSIC ) {		CG_StartMusic();	} else if ( num == CS_SERVERINFO ) {		CG_ParseServerinfo();	} else if ( num == CS_WARMUP ) {		CG_ParseWarmup();	} else if ( num == CS_SCORES1 ) {		cgs.scores1 = atoi( str );	} else if ( num == CS_SCORES2 ) {		cgs.scores2 = atoi( str );	} else if ( num == CS_LEVEL_START_TIME ) {		cgs.levelStartTime = atoi( str );	} else if ( num == CS_VOTE_TIME ) {		cgs.voteTime = atoi( str );		cgs.voteModified = qtrue;	} else if ( num == CS_VOTE_YES ) {		cgs.voteYes = atoi( str );		cgs.voteModified = qtrue;	} else if ( num == CS_VOTE_NO ) {		cgs.voteNo = atoi( str );		cgs.voteModified = qtrue;	} else if ( num == CS_VOTE_STRING ) {		Q_strncpyz( cgs.voteString, str, sizeof( cgs.voteString ) );#ifdef MISSIONPACK		trap_S_StartLocalSound( cgs.media.voteNow, CHAN_ANNOUNCER );#endif //MISSIONPACK	} else if ( num >= CS_TEAMVOTE_TIME && num <= CS_TEAMVOTE_TIME + 1) {		cgs.teamVoteTime[num-CS_TEAMVOTE_TIME] = atoi( str );		cgs.teamVoteModified[num-CS_TEAMVOTE_TIME] = qtrue;	} else if ( num >= CS_TEAMVOTE_YES && num <= CS_TEAMVOTE_YES + 1) {		cgs.teamVoteYes[num-CS_TEAMVOTE_YES] = atoi( str );		cgs.teamVoteModified[num-CS_TEAMVOTE_YES] = qtrue;	} else if ( num >= CS_TEAMVOTE_NO && num <= CS_TEAMVOTE_NO + 1) {		cgs.teamVoteNo[num-CS_TEAMVOTE_NO] = atoi( str );		cgs.teamVoteModified[num-CS_TEAMVOTE_NO] = qtrue;	} else if ( num >= CS_TEAMVOTE_STRING && num <= CS_TEAMVOTE_STRING + 1) {		Q_strncpyz( cgs.teamVoteString[num-CS_TEAMVOTE_STRING], str, sizeof( cgs.teamVoteString ) );#ifdef MISSIONPACK		trap_S_StartLocalSound( cgs.media.voteNow, CHAN_ANNOUNCER );#endif	} else if ( num == CS_INTERMISSION ) {		cg.intermissionStarted = atoi( str );	} else if ( num >= CS_MODELS && num < CS_MODELS+MAX_MODELS ) {		cgs.gameModels[ num-CS_MODELS ] = trap_R_RegisterModel( str );	} else if ( num >= CS_SOUNDS && num < CS_SOUNDS+MAX_MODELS ) {		if ( str[0] != '*' ) {	// player specific sounds don't register here			cgs.gameSounds[ num-CS_SOUNDS] = trap_S_RegisterSound( str, qfalse );		}	} else if ( num >= CS_PLAYERS && num < CS_PLAYERS+MAX_CLIENTS ) {		CG_NewClientInfo( num - CS_PLAYERS );		CG_BuildSpectatorString();	} else if ( num == CS_FLAGSTATUS ) {		if( cgs.gametype == GT_CTF ) {			// format is rb where its red/blue, 0 is at base, 1 is taken, 2 is dropped			cgs.redflag = str[0] - '0';			cgs.blueflag = str[1] - '0';		}#ifdef MISSIONPACK		else if( cgs.gametype == GT_1FCTF ) {			cgs.flagStatus = str[0] - '0';		}#endif	}	else if ( num == CS_SHADERSTATE ) {		CG_ShaderStateChanged();	}}
开发者ID:linux26,项目名称:corkscrew,代码行数:88,


示例8: Cmd_Argc

/*=================CG_ServerCommandThe string has been tokenized and can be retrieved withCmd_Argc() / Cmd_Argv()=================*/static void CG_ServerCommand( void ) {	const char	*cmd;	char		text[MAX_SAY_TEXT];	cmd = CG_Argv(0);	if ( !cmd[0] ) {		// server claimed the command		return;	}	if ( !strcmp( cmd, "cp" ) ) {		CG_CenterPrint( CG_Argv(1), SCREEN_HEIGHT * 0.30, BIGCHAR_WIDTH );		return;	}	if ( !strcmp( cmd, "cs" ) ) {		CG_ConfigStringModified();		return;	}	if ( !strcmp( cmd, "print" ) ) {		CG_Printf( "%s", CG_Argv(1) );#ifdef MISSIONPACK		cmd = CG_Argv(1);			// yes, this is obviously a hack, but so is the way we hear about									// votes passing or failing		if ( !Q_stricmpn( cmd, "vote failed", 11 ) || !Q_stricmpn( cmd, "team vote failed", 16 )) {			trap_S_StartLocalSound( cgs.media.voteFailed, CHAN_ANNOUNCER );		} else if ( !Q_stricmpn( cmd, "vote passed", 11 ) || !Q_stricmpn( cmd, "team vote passed", 16 ) ) {			trap_S_StartLocalSound( cgs.media.votePassed, CHAN_ANNOUNCER );		}#endif		return;	}	if ( !strcmp( cmd, "chat" ) ) {		if ( !cg_teamChatsOnly.integer ) {			trap_S_StartLocalSound( cgs.media.talkSound, CHAN_LOCAL_SOUND );			Q_strncpyz( text, CG_Argv(1), MAX_SAY_TEXT );			CG_RemoveChatEscapeChar( text );			CG_Printf( "%s/n", text );		}		return;	}	if ( !strcmp( cmd, "tchat" ) ) {		trap_S_StartLocalSound( cgs.media.talkSound, CHAN_LOCAL_SOUND );		Q_strncpyz( text, CG_Argv(1), MAX_SAY_TEXT );		CG_RemoveChatEscapeChar( text );		CG_AddToTeamChat( text );		CG_Printf( "%s/n", text );		return;	}	if ( !strcmp( cmd, "vchat" ) ) {		CG_VoiceChat( SAY_ALL );		return;	}	if ( !strcmp( cmd, "vtchat" ) ) {		CG_VoiceChat( SAY_TEAM );		return;	}	if ( !strcmp( cmd, "vtell" ) ) {		CG_VoiceChat( SAY_TELL );		return;	}	if ( !strcmp( cmd, "scores" ) ) {		CG_ParseScores();		return;	}	if ( !strcmp( cmd, "tinfo" ) ) {		CG_ParseTeamInfo();		return;	}	if ( !strcmp( cmd, "map_restart" ) ) {		CG_MapRestart();		return;	}  if ( Q_stricmp (cmd, "remapShader") == 0 ) {		if (trap_Argc() == 4) {			trap_R_RemapShader(CG_Argv(1), CG_Argv(2), CG_Argv(3));		}	}	// loaddeferred can be both a servercmd and a consolecmd	if ( !strcmp( cmd, "loaddefered" ) ) {	// FIXME: spelled wrong, but not changing for demo		CG_LoadDeferredPlayers();//.........这里部分代码省略.........
开发者ID:linux26,项目名称:corkscrew,代码行数:101,


示例9: Cmd_Argc

/*=================CG_ServerCommandThe string has been tokenized and can be retrieved withCmd_Argc() / Cmd_Argv()=================*/static void CG_ServerCommand( void ) {	const char	*cmd;	char		text[MAX_SAY_TEXT];	cmd = CG_Argv(0);	if ( !cmd[0] ) {		// server claimed the command		return;	}	if ( !strcmp( cmd, "cp" ) ) {		CG_CenterPrint( CG_Argv(1), SCREEN_HEIGHT * 0.30, BIGCHAR_WIDTH );		return;	}	if ( !strcmp( cmd, "cs" ) ) {		CG_ConfigStringModified();		return;	}	if ( !strcmp( cmd, "print" ) ) {		CG_Printf( "%s", CG_Argv(1) );#ifdef MISSIONPACK		cmd = CG_Argv(1);			// yes, this is obviously a hack, but so is the way we hear about									// votes passing or failing		if ( !Q_stricmpn( cmd, "vote failed", 11 ) || !Q_stricmpn( cmd, "team vote failed", 16 )) {			trap_S_StartLocalSound( cgs.media.voteFailed, CHAN_ANNOUNCER );		} else if ( !Q_stricmpn( cmd, "vote passed", 11 ) || !Q_stricmpn( cmd, "team vote passed", 16 ) ) {			trap_S_StartLocalSound( cgs.media.votePassed, CHAN_ANNOUNCER );		}#endif		return;	}	if ( !strcmp( cmd, "chat" ) ) {		if ( !cg_teamChatsOnly.integer ) {                        if( cg_chatBeep.integer )                                trap_S_StartLocalSound( cgs.media.talkSound, CHAN_LOCAL_SOUND );			Q_strncpyz( text, CG_Argv(1), MAX_SAY_TEXT );			CG_RemoveChatEscapeChar( text );			CG_Printf( "%s/n", text );		}		return;	}	if ( !strcmp( cmd, "tchat" ) ) {                if( cg_teamChatBeep.integer )                        trap_S_StartLocalSound( cgs.media.talkSound, CHAN_LOCAL_SOUND );		Q_strncpyz( text, CG_Argv(1), MAX_SAY_TEXT );		CG_RemoveChatEscapeChar( text );		CG_AddToTeamChat( text );		CG_Printf( "%s/n", text );		return;	}	if ( !strcmp( cmd, "vchat" ) ) {		CG_VoiceChat( SAY_ALL );		return;	}	if ( !strcmp( cmd, "vtchat" ) ) {		CG_VoiceChat( SAY_TEAM );		return;	}	if ( !strcmp( cmd, "vtell" ) ) {		CG_VoiceChat( SAY_TELL );		return;	}	if ( !strcmp( cmd, "scores" ) ) {		CG_ParseScores();		return;	}        if ( !strcmp( cmd, "accs" ) ) {                CG_ParseAccuracy();                return;        }	if ( !strcmp( cmd, "ddtaken" ) ) {		CG_ParseDDtimetaken();		return;	}	if ( !strcmp( cmd, "dompointnames" ) ) {		CG_ParseDomPointNames();		return;	}//.........这里部分代码省略.........
开发者ID:OpenArena,项目名称:leixperimental,代码行数:101,


示例10: CG_CheckLocalSounds

/*==================CG_CheckLocalSounds==================*/voidCG_CheckLocalSounds( playerState_t *ps, playerState_t *ops ){    if ( cg_hitsounds.integer &&         ps->clientNum == ops->clientNum &&         ps->persistant[PERS_SPAWN_COUNT] == ops->persistant[PERS_SPAWN_COUNT] )    {        int* const h  = ps->holdable;        int* const oh = ops->holdable;        ///////////////////////////////////////////////////////////////////        if ((h[HOLDABLE_HIT] & 0x000f) > (oh[HOLDABLE_HIT] & 0x000f))            trap_S_StartLocalSound( cgs.media.hitsound_head, CHAN_LOCAL_SOUND );        if (cg_hitsounds.integer != 2) {            if ((h[HOLDABLE_HIT] & 0x00f0) != (oh[HOLDABLE_HIT] & 0x00f0))                trap_S_StartLocalSound( cgs.media.hitsound_hand, CHAN_LOCAL_SOUND );            if ((h[HOLDABLE_HIT] & 0x0f00) != (oh[HOLDABLE_HIT] & 0x0f00))                trap_S_StartLocalSound( cgs.media.hitsound_torso, CHAN_LOCAL_SOUND );            if ((h[HOLDABLE_HIT] & 0xf000) != (oh[HOLDABLE_HIT] & 0xf000))                trap_S_StartLocalSound( cgs.media.hitsound_foot, CHAN_LOCAL_SOUND );        }        ///////////////////////////////////////////////////////////////////        if ((h[HOLDABLE_HITF] & 0x000f) != (oh[HOLDABLE_HITF] & 0x000f))            trap_S_StartLocalSound( cgs.media.hitsound_fhead, CHAN_LOCAL_SOUND );        if (cg_hitsounds.integer != 2) {            if ((h[HOLDABLE_HITF] & 0x00f0) != (oh[HOLDABLE_HITF] & 0x00f0))                trap_S_StartLocalSound( cgs.media.hitsound_fhand, CHAN_LOCAL_SOUND );            if ((h[HOLDABLE_HITF] & 0x0f00) != (oh[HOLDABLE_HITF] & 0x0f00))                trap_S_StartLocalSound( cgs.media.hitsound_ftorso, CHAN_LOCAL_SOUND );            if ((h[HOLDABLE_HITF] & 0xf000) != (oh[HOLDABLE_HITF] & 0xf000))                trap_S_StartLocalSound( cgs.media.hitsound_ffoot, CHAN_LOCAL_SOUND );        }    }	// health changes of more than -1 should make pain sounds	if ( ps->stats[STAT_HEALTH] < ops->stats[STAT_HEALTH] - 1 ) {		if ( ps->stats[STAT_HEALTH] > 0 ) {			CG_PainEvent( &cg.predictedPlayerEntity, ps->stats[STAT_HEALTH], qfalse );			cg.painTime = cg.time;		}	}	// timelimit warnings	if ( cgs.timelimit > 0 && cgs.gamestate == GS_PLAYING) {		int		msec;		msec = cg.time - cgs.levelStartTime;		if ( cgs.timelimit > 5 && !( cg.timelimitWarnings & 1 ) && (msec > (cgs.timelimit - 5) * 60 * 1000) &&			( msec < (cgs.timelimit-5)*60*1000+1000 ) ) {			cg.timelimitWarnings |= 1;			if( ps->persistant[PERS_TEAM] == TEAM_AXIS ) {				if( cgs.media.fiveMinuteSound_g == -1 ) {					CG_SoundPlaySoundScript( cg.fiveMinuteSound_g, NULL, -1, qtrue );				} else if( cgs.media.fiveMinuteSound_g ) {					trap_S_StartLocalSound( cgs.media.fiveMinuteSound_g, CHAN_ANNOUNCER );				}			} else if( ps->persistant[PERS_TEAM] == TEAM_ALLIES ) {				if( cgs.media.fiveMinuteSound_a == -1 ) {					CG_SoundPlaySoundScript( cg.fiveMinuteSound_a, NULL, -1, qtrue );				} else if( cgs.media.fiveMinuteSound_a ) {					trap_S_StartLocalSound( cgs.media.fiveMinuteSound_a, CHAN_ANNOUNCER );				}			}		}		if ( cgs.timelimit > 2 && !( cg.timelimitWarnings & 2 ) && (msec > (cgs.timelimit - 2) * 60 * 1000) &&			( msec < (cgs.timelimit-2)*60*1000+1000 ) ) {			cg.timelimitWarnings |= 2;			if( ps->persistant[PERS_TEAM] == TEAM_AXIS ) {				if( cgs.media.twoMinuteSound_g == -1 ) {					CG_SoundPlaySoundScript( cg.twoMinuteSound_g, NULL, -1, qtrue );				} else if( cgs.media.twoMinuteSound_g ) {					trap_S_StartLocalSound( cgs.media.twoMinuteSound_g, CHAN_ANNOUNCER );				}			} else if( ps->persistant[PERS_TEAM] == TEAM_ALLIES ) {				if( cgs.media.twoMinuteSound_a == -1 ) {					CG_SoundPlaySoundScript( cg.twoMinuteSound_a, NULL, -1, qtrue );				} else if( cgs.media.twoMinuteSound_a ) {					trap_S_StartLocalSound( cgs.media.twoMinuteSound_a, CHAN_ANNOUNCER );				}			}		}		if ( !( cg.timelimitWarnings & 4 ) && (msec > (cgs.timelimit) * 60 * 1000 - 30000) && 			(msec < (cgs.timelimit) * 60 * 1000 - 29000 ) ) {			cg.timelimitWarnings |= 4;//.........这里部分代码省略.........
开发者ID:Dragonji,项目名称:jaymod,代码行数:101,


示例11: InformUnlockableStatusChanges

static void InformUnlockableStatusChanges( int *statusChanges, int count ){	char         text[ MAX_STRING_CHARS ];	char         *textptr = text;	int          unlockableNum;	bool     firstPass = true, unlocked = true;	unlockable_t *unlockable;	for ( unlockableNum = 0; unlockableNum < NUM_UNLOCKABLES; unlockableNum++ )	{		unlockable = &unlockables[ unlockableNum ];		if ( !statusChanges[ unlockableNum ] || Disabled( unlockable ) )		{			continue;		}		if ( firstPass )		{			if ( statusChanges[ unlockableNum ] > 0 )			{				Com_sprintf( text, sizeof( text ),				             S_COLOR_GREEN "ITEM%s UNLOCKED: " S_COLOR_WHITE, ( count > 1 ) ? "S" : "" );			}			else			{				unlocked = false;				Com_sprintf( text, sizeof( text ),				             S_COLOR_RED   "ITEM%s LOCKED: "   S_COLOR_WHITE, ( count > 1 ) ? "S" : "" );			}			textptr = text + strlen( text );			firstPass = false;		}		else		{			Com_sprintf( textptr, sizeof( text ) - ( textptr - text ), ", " );			textptr += 2;		}		Com_sprintf( textptr, sizeof( text ) - ( textptr - text ), "%s", UnlockableHumanName( unlockable ) );		textptr += strlen( textptr );	}	// TODO: Add sound for items being locked for each team	switch ( cg.snap->ps.persistant[ PERS_TEAM ] )	{		case TEAM_ALIENS:			if ( unlocked )			{				trap_S_StartLocalSound( cgs.media.weHaveEvolved, CHAN_ANNOUNCER );			}			break;		case TEAM_HUMANS:		default:			if ( unlocked )			{				trap_S_StartLocalSound( cgs.media.reinforcement, CHAN_ANNOUNCER );			}			break;	}	CG_CenterPrint( text, SCREEN_HEIGHT * 0.3, GIANTCHAR_WIDTH * 2 );}
开发者ID:JacksonTech,项目名称:Unvanquished,代码行数:65,


示例12: UI_SPPostgameMenu_MenuDraw

/*=================UI_SPPostgameMenu_MenuDraw=================*/static void UI_SPPostgameMenu_MenuDraw( void ) {    int		timer;    int		serverId;    int		n;    char	info[MAX_INFO_STRING];    trap_GetConfigString( CS_SYSTEMINFO, info, sizeof(info) );    serverId = atoi( Info_ValueForKey( info, "sv_serverid" ) );    if( serverId != postgameMenuInfo.serverId ) {        UI_PopMenu();        return;    }    // phase 1    if ( postgameMenuInfo.numClients > 2 ) {        UI_DrawProportionalString( 510, 480 - 64 - PROP_HEIGHT, postgameMenuInfo.placeNames[2], UI_CENTER, color_white );    }    UI_DrawProportionalString( 130, 480 - 64 - PROP_HEIGHT, postgameMenuInfo.placeNames[1], UI_CENTER, color_white );    UI_DrawProportionalString( 320, 480 - 64 - 2 * PROP_HEIGHT, postgameMenuInfo.placeNames[0], UI_CENTER, color_white );    if( postgameMenuInfo.phase == 1 ) {        timer = uis.realtime - postgameMenuInfo.starttime;        if( timer >= 1000 && postgameMenuInfo.winnerSound ) {            trap_S_StartLocalSound( postgameMenuInfo.winnerSound, CHAN_ANNOUNCER );            postgameMenuInfo.winnerSound = 0;        }        if( timer < 5000 ) {            return;        }        postgameMenuInfo.phase = 2;        postgameMenuInfo.starttime = uis.realtime;    }    // phase 2    if( postgameMenuInfo.phase == 2 ) {        timer = uis.realtime - postgameMenuInfo.starttime;        if( timer >= ( postgameMenuInfo.numAwards * AWARD_PRESENTATION_TIME ) ) {            if( timer < 5000 ) {                return;            }            postgameMenuInfo.phase = 3;            postgameMenuInfo.starttime = uis.realtime;        }        else {            UI_SPPostgameMenu_DrawAwardsPresentation( timer );        }    }    // phase 3    if( postgameMenuInfo.phase == 3 ) {        if( uis.demoversion ) {            if( postgameMenuInfo.won == 1 && UI_ShowTierVideo( 8 )) {                trap_Cvar_Set( "nextmap", "" );                trap_Cmd_ExecuteText( EXEC_APPEND, "disconnect; cinematic demoEnd.RoQ/n" );                return;            }        }        else if( postgameMenuInfo.won > -1 && UI_ShowTierVideo( postgameMenuInfo.won + 1 )) {            if( postgameMenuInfo.won == postgameMenuInfo.lastTier ) {                trap_Cvar_Set( "nextmap", "" );                trap_Cmd_ExecuteText( EXEC_APPEND, "disconnect; cinematic end.RoQ/n" );                return;            }            trap_Cvar_SetValue( "ui_spSelection", postgameMenuInfo.won * ARENAS_PER_TIER );            trap_Cvar_Set( "nextmap", "levelselect" );            trap_Cmd_ExecuteText( EXEC_APPEND, va( "disconnect; cinematic tier%i.RoQ/n", postgameMenuInfo.won + 1 ) );            return;        }        postgameMenuInfo.item_again.generic.flags &= ~QMF_INACTIVE;        postgameMenuInfo.item_next.generic.flags &= ~QMF_INACTIVE;        postgameMenuInfo.item_menu.generic.flags &= ~QMF_INACTIVE;        UI_SPPostgameMenu_DrawAwardsMedals( postgameMenuInfo.numAwards );        Menu_Draw( &postgameMenuInfo.menu );    }    // draw the scoreboard    if( !trap_Cvar_VariableValue( "ui_spScoreboard" ) ) {        return;    }    timer = uis.realtime - postgameMenuInfo.scoreboardtime;    if( postgameMenuInfo.numClients <= 3 ) {        n = 0;    }    else {        n = timer / 1500 % (postgameMenuInfo.numClients + 2);    }//.........这里部分代码省略.........
开发者ID:GregMacPherson,项目名称:Quake-III-Arena,代码行数:101,


示例13: CG_CheckAmmo

/*==============CG_CheckAmmoIf the ammo has gone low enough to generate the warning, play a sound==============*/void CG_CheckAmmo( void ) {	int i;	int total;	int weapons[MAX_WEAPONS / ( sizeof( int ) * 8 )];	// see about how many seconds of ammo we have remaining	memcpy( weapons, cg.snap->ps.weapons, sizeof( weapons ) );	if ( !weapons[0] && !weapons[1] ) { // (SA) we start out with no weapons, so don't make a click on startup		return;	}	total = 0;	// first weap now WP_LUGER	for ( i = WP_FIRST ; i < WP_NUM_WEAPONS ; i++ )	{		if ( !( weapons[0] & ( 1 << i ) ) ) {			continue;		}		switch ( i )		{		case WP_PANZERFAUST:		case WP_GRENADE_LAUNCHER:		case WP_GRENADE_PINEAPPLE:		case WP_LUGER:		case WP_COLT:		case WP_AKIMBO:		case WP_SILENCER:		case WP_FG42:		case WP_FG42SCOPE:		case WP_MP40:		case WP_THOMPSON:		case WP_STEN:		case WP_VENOM:		case WP_TESLA:		case WP_MAUSER:		case WP_GARAND:		default:			total += cg.snap->ps.ammo[BG_FindAmmoForWeapon( i )] * 1000;//				break;//			default://				total += cg.snap->ps.ammo[BG_FindAmmoForWeapon(i)] * 200;//				break;		}		if ( total >= 5000 ) {			cg.lowAmmoWarning = 0;			return;		}	}	if ( !cg.lowAmmoWarning ) {		// play a sound on this transition		trap_S_StartLocalSound( cgs.media.noAmmoSound, CHAN_LOCAL_SOUND );	}	if ( total == 0 ) {		cg.lowAmmoWarning = 2;	} else {		cg.lowAmmoWarning = 1;	}}
开发者ID:JackalFrost,项目名称:RTCW-WSGF,代码行数:70,


示例14: CG_ConfigStringModified

static void CG_ConfigStringModified(void){	const char	*str;	int		num;	num = atoi(BG_Argv(1));	// get the gamestate from the client system, which will have the	// new configstring already integrated	trap_GetGameState(&cgs.gameState);	// look up the individual string that was modified	str = CG_ConfigString(num);	// do something with it if necessary	if (num == CS_SERVERINFO) {		CG_ParseServerinfo();	} else if (num == CS_WARMUP) {		CG_SetWarmup(atoi(str));	} else if (num == CS_SCORES1) {		cgs.scores1 = atoi(str);	} else if (num == CS_SCORES2) {		cgs.scores2 = atoi(str);	} else if (num == CS_LEVEL_START_TIME) {		cgs.levelStartTime = atoi(str);	} else if (num == CS_VOTE_TIME) {		if (!strcmp(str, "failed")) {			cgs.voteTime = 0;			CG_Printf("Vote failed./n");			CG_AddBufferedSound(cgs.media.voteFailed);		} else if (!strcmp(str, "passed")) {			cgs.voteTime = 0;			CG_Printf("Vote passed./n");			CG_AddBufferedSound(cgs.media.votePassed);		} else if (*str) {			cgs.voteTime = atoi(str);			CG_Printf("Vote cast./n");			CG_AddBufferedSound(cgs.media.voteNow);		}	} else if (num == CS_VOTE_YES) {		cgs.voteYes = atoi(str);		trap_S_StartLocalSound(cgs.media.talkSound, CHAN_LOCAL_SOUND);	} else if (num == CS_VOTE_NO) {		cgs.voteNo = atoi(str);		trap_S_StartLocalSound(cgs.media.talkSound, CHAN_LOCAL_SOUND);	} else if (num == CS_VOTE_STRING) {		Q_strncpyz(cgs.voteString, str, sizeof(cgs.voteString));	} else if (num == CS_INTERMISSION) {		cg.intermissionStarted = atoi(str);	} else if (num >= CS_MODELS && num < CS_MODELS+MAX_MODELS) {		cgs.gameModels[num-CS_MODELS] = trap_R_RegisterModel(str);	} else if (num >= CS_SOUNDS && num < CS_SOUNDS+MAX_SOUNDS) {		if (str[0] != '*') {	// player specific sounds don't register here			cgs.gameSounds[num-CS_SOUNDS] = trap_S_RegisterSound(str, qfalse);		}	} else if (num >= CS_PLAYERS && num < CS_PLAYERS+MAX_CLIENTS) {		CG_NewClientInfo(num - CS_PLAYERS);	} else if (num == CS_FLAGSTATUS) {		// format is rb where its red/blue, 0 is at base, 1 is taken, 2 is dropped		if (cgs.gametype == GT_CTF) {			team_t	team;			team = cgs.clientinfo[cg.clientNum].team;			if ((cgs.redflag == 1 && str[0] - '0' == 2 && team == TEAM_RED)				|| (cgs.blueflag == 1 && str[1] - '0' == 2 && team == TEAM_BLUE))			{				CG_CenterPrint("^2The enemy dropped your flag");			} else if ((cgs.redflag == 1 && str[0] - '0' == 2 && team == TEAM_BLUE)				|| (cgs.blueflag == 1 && str[1] - '0' == 2 && team == TEAM_RED))			{				CG_CenterPrint("^1You team dropped the flag");			}			cgs.redflag = str[0] - '0';			cgs.blueflag = str[1] - '0';		}	} else if (num == CS_SHADERSTATE) {		CG_ShaderStateChanged();	} else if (num == CS_ROUND_START) {		cg.countdownCount = -1;		cgs.roundStartTime = atoi(str);	} else if (num == CS_LIVING_COUNT) {		int		newRed, newBlue;		newRed = atoi(COM_Parse((char **) &str));		newBlue = atoi(COM_Parse((char **) &str));		if (!cgs.warmup && cg.time >= cgs.roundStartTime) {			team_t	team;			team = cg.snap->ps.persistant[PERS_TEAM];			if ((newRed == 1 && cgs.redLivingCount != 1 && team == TEAM_RED)				|| (newBlue == 1 && cgs.blueLivingCount != 1 && team == TEAM_BLUE))			{				CG_CenterPrint("You are the last in your team");			}		}		cgs.redLivingCount = newRed;		cgs.blueLivingCount = newBlue;	} else if (num == CS_OVERTIME) {		cgs.overtimeStart = atoi(str);//.........这里部分代码省略.........
开发者ID:baseas,项目名称:aftershock,代码行数:101,


示例15: CG_CheckLocalSounds

/*==================CG_CheckLocalSounds==================*/void CG_CheckLocalSounds( playerState_t *ps, playerState_t *ops ) {	// health changes of more than -1 should make pain sounds	if ( ps->stats[STAT_HEALTH] < ops->stats[STAT_HEALTH] - 1 ) {		if ( ps->stats[STAT_HEALTH] > 0 ) {			CG_PainEvent( &cg.predictedPlayerEntity, ps->stats[STAT_HEALTH], qfalse );			cg.painTime = cg.time;		}	}	// timelimit warnings	if ( cgs.timelimit > 0 && cgs.gamestate == GS_PLAYING) {		int		msec;		msec = cg.time - cgs.levelStartTime;		if ( cgs.timelimit > 5 && !( cg.timelimitWarnings & 1 ) && (msec > (cgs.timelimit - 5) * 60 * 1000) &&			( msec < (cgs.timelimit-5)*60*1000+1000 ) ) {			cg.timelimitWarnings |= 1;			if( ps->persistant[PERS_TEAM] == TEAM_AXIS ) {				if( cgs.media.fiveMinuteSound_g == -1 ) {					CG_SoundPlaySoundScript( cg.fiveMinuteSound_g, NULL, -1, qtrue );				} else if( cgs.media.fiveMinuteSound_g ) {					trap_S_StartLocalSound( cgs.media.fiveMinuteSound_g, CHAN_ANNOUNCER );				}			} else if( ps->persistant[PERS_TEAM] == TEAM_ALLIES ) {				if( cgs.media.fiveMinuteSound_a == -1 ) {					CG_SoundPlaySoundScript( cg.fiveMinuteSound_a, NULL, -1, qtrue );				} else if( cgs.media.fiveMinuteSound_a ) {					trap_S_StartLocalSound( cgs.media.fiveMinuteSound_a, CHAN_ANNOUNCER );				}			}		}		if ( cgs.timelimit > 2 && !( cg.timelimitWarnings & 2 ) && (msec > (cgs.timelimit - 2) * 60 * 1000) &&			( msec < (cgs.timelimit-2)*60*1000+1000 ) ) {			cg.timelimitWarnings |= 2;			if( ps->persistant[PERS_TEAM] == TEAM_AXIS ) {				if( cgs.media.twoMinuteSound_g == -1 ) {					CG_SoundPlaySoundScript( cg.twoMinuteSound_g, NULL, -1, qtrue );				} else if( cgs.media.twoMinuteSound_g ) {					trap_S_StartLocalSound( cgs.media.twoMinuteSound_g, CHAN_ANNOUNCER );				}			} else if( ps->persistant[PERS_TEAM] == TEAM_ALLIES ) {				if( cgs.media.twoMinuteSound_a == -1 ) {					CG_SoundPlaySoundScript( cg.twoMinuteSound_a, NULL, -1, qtrue );				} else if( cgs.media.twoMinuteSound_a ) {					trap_S_StartLocalSound( cgs.media.twoMinuteSound_a, CHAN_ANNOUNCER );				}			}		}		if ( !( cg.timelimitWarnings & 4 ) && (msec > (cgs.timelimit) * 60 * 1000 - 30000) && 			(msec < (cgs.timelimit) * 60 * 1000 - 29000 ) ) {			cg.timelimitWarnings |= 4;			if( ps->persistant[PERS_TEAM] == TEAM_AXIS ) {				if( cgs.media.thirtySecondSound_g == -1 ) {					CG_SoundPlaySoundScript( cg.thirtySecondSound_g, NULL, -1, qtrue );				} else if( cgs.media.thirtySecondSound_g ) {					trap_S_StartLocalSound( cgs.media.thirtySecondSound_g, CHAN_ANNOUNCER );				}			} else if( ps->persistant[PERS_TEAM] == TEAM_ALLIES ) {				if( cgs.media.thirtySecondSound_a == -1 ) {					CG_SoundPlaySoundScript( cg.thirtySecondSound_a, NULL, -1, qtrue );				} else if( cgs.media.thirtySecondSound_a ) {					trap_S_StartLocalSound( cgs.media.thirtySecondSound_a, CHAN_ANNOUNCER );				}			}		}	}}
开发者ID:BulldogDrummond,项目名称:etpub,代码行数:74,


示例16: CG_AddKamikaze

/*====================CG_AddKamikaze====================*/void CG_AddKamikaze( localEntity_t *le ) {	refEntity_t	*re;	refEntity_t shockwave;	float		c;	vec3_t		test, axis[3];	int			t;	re = &le->refEntity;	t = cg.time - le->startTime;	VectorClear( test );	AnglesToAxis( test, axis );	if (t > KAMI_SHOCKWAVE_STARTTIME && t < KAMI_SHOCKWAVE_ENDTIME) {		if (!(le->leFlags & LEF_SOUND1)) {//			trap_S_StartSound (re->origin, ENTITYNUM_WORLD, CHAN_AUTO, cgs.media.kamikazeExplodeSound );			trap_S_StartLocalSound(cgs.media.kamikazeExplodeSound, CHAN_AUTO);			le->leFlags |= LEF_SOUND1;		}		// 1st kamikaze shockwave		memset(&shockwave, 0, sizeof(shockwave));		shockwave.hModel = cgs.media.kamikazeShockWave;		shockwave.reType = RT_MODEL;		shockwave.shaderTime = re->shaderTime;		VectorCopy(re->origin, shockwave.origin);		c = (float)(t - KAMI_SHOCKWAVE_STARTTIME) / (float)(KAMI_SHOCKWAVE_ENDTIME - KAMI_SHOCKWAVE_STARTTIME);		VectorScale( axis[0], c * KAMI_SHOCKWAVE_MAXRADIUS / KAMI_SHOCKWAVEMODEL_RADIUS, shockwave.axis[0] );		VectorScale( axis[1], c * KAMI_SHOCKWAVE_MAXRADIUS / KAMI_SHOCKWAVEMODEL_RADIUS, shockwave.axis[1] );		VectorScale( axis[2], c * KAMI_SHOCKWAVE_MAXRADIUS / KAMI_SHOCKWAVEMODEL_RADIUS, shockwave.axis[2] );		shockwave.nonNormalizedAxes = qtrue;		if (t > KAMI_SHOCKWAVEFADE_STARTTIME) {			c = (float)(t - KAMI_SHOCKWAVEFADE_STARTTIME) / (float)(KAMI_SHOCKWAVE_ENDTIME - KAMI_SHOCKWAVEFADE_STARTTIME);		}		else {			c = 0;		}		c *= 0xff;		shockwave.shaderRGBA[0] = 0xff - c;		shockwave.shaderRGBA[1] = 0xff - c;		shockwave.shaderRGBA[2] = 0xff - c;		shockwave.shaderRGBA[3] = 0xff - c;		CG_AddRefEntityWithMinLight( &shockwave );	}	if (t > KAMI_EXPLODE_STARTTIME && t < KAMI_IMPLODE_ENDTIME) {		// explosion and implosion		c = ( le->endTime - cg.time ) * le->lifeRate;		c *= 0xff;		re->shaderRGBA[0] = le->color[0] * c;		re->shaderRGBA[1] = le->color[1] * c;		re->shaderRGBA[2] = le->color[2] * c;		re->shaderRGBA[3] = le->color[3] * c;		if( t < KAMI_IMPLODE_STARTTIME ) {			c = (float)(t - KAMI_EXPLODE_STARTTIME) / (float)(KAMI_IMPLODE_STARTTIME - KAMI_EXPLODE_STARTTIME);		}		else {			if (!(le->leFlags & LEF_SOUND2)) {//				trap_S_StartSound (re->origin, ENTITYNUM_WORLD, CHAN_AUTO, cgs.media.kamikazeImplodeSound );				trap_S_StartLocalSound(cgs.media.kamikazeImplodeSound, CHAN_AUTO);				le->leFlags |= LEF_SOUND2;			}			c = (float)(KAMI_IMPLODE_ENDTIME - t) / (float) (KAMI_IMPLODE_ENDTIME - KAMI_IMPLODE_STARTTIME);		}		VectorScale( axis[0], c * KAMI_BOOMSPHERE_MAXRADIUS / KAMI_BOOMSPHEREMODEL_RADIUS, re->axis[0] );		VectorScale( axis[1], c * KAMI_BOOMSPHERE_MAXRADIUS / KAMI_BOOMSPHEREMODEL_RADIUS, re->axis[1] );		VectorScale( axis[2], c * KAMI_BOOMSPHERE_MAXRADIUS / KAMI_BOOMSPHEREMODEL_RADIUS, re->axis[2] );		re->nonNormalizedAxes = qtrue;		CG_AddRefEntityWithMinLight( re );		// add the dlight		trap_R_AddLightToScene( re->origin, c * 1000.0, 1.0, 1.0, 1.0, c );	}	if (t > KAMI_SHOCKWAVE2_STARTTIME && t < KAMI_SHOCKWAVE2_ENDTIME) {		// 2nd kamikaze shockwave		if (le->angles.trBase[0] == 0 &&			le->angles.trBase[1] == 0 &&			le->angles.trBase[2] == 0) {			le->angles.trBase[0] = random() * 360;			le->angles.trBase[1] = random() * 360;			le->angles.trBase[2] = random() * 360;		}		memset(&shockwave, 0, sizeof(shockwave));		shockwave.hModel = cgs.media.kamikazeShockWave;		shockwave.reType = RT_MODEL;		shockwave.shaderTime = re->shaderTime;		VectorCopy(re->origin, shockwave.origin);		test[0] = le->angles.trBase[0];		test[1] = le->angles.trBase[1];//.........这里部分代码省略.........
开发者ID:mecwerks,项目名称:spearmint-ios,代码行数:101,


示例17: UI_StartSound

void UI_StartSound( qhandle_t sound ) {	if ( soundTime > uis.realtime ) return;	trap_S_StartLocalSound( sound, CHAN_LOCAL_SOUND );}
开发者ID:linux26,项目名称:corkscrew,代码行数:5,


示例18: CG_SiegeObjectiveCompleted

//.........这里部分代码省略.........	char			foundobjective[MAX_SIEGE_INFO_SIZE];	char			appstring[1024];	char			soundstr[1024];	int				success = 0;	playerState_t	*ps = NULL;	if (!siege_valid)	{		CG_Error("Siege data does not exist on client!/n");		return;	}	if (cg.snap)	{ //this should always be true, if it isn't though use the predicted ps as a fallback		ps = &cg.snap->ps;	}	else	{		ps = &cg.predictedPlayerState;	}	if (!ps)	{		assert(0);		return;	}	myTeam = ps->persistant[PERS_TEAM];	if (myTeam == TEAM_SPECTATOR)	{		return;	}	if (won == SIEGETEAM_TEAM1)	{		Com_sprintf(teamstr, sizeof(teamstr), team1);	}	else	{		Com_sprintf(teamstr, sizeof(teamstr), team2);	}	if (BG_SiegeGetValueGroup(siege_info, teamstr, cgParseObjectives))	{		Com_sprintf(objstr, sizeof(objstr), "Objective%i", objectivenum);		if (BG_SiegeGetValueGroup(cgParseObjectives, objstr, foundobjective))		{			if (myTeam == SIEGETEAM_TEAM1)			{				success = BG_SiegeGetPairedValue(foundobjective, "message_team1", appstring);			}			else			{				success = BG_SiegeGetPairedValue(foundobjective, "message_team2", appstring);			}			if (success)			{				CG_DrawSiegeMessageNonMenu(appstring);			}			appstring[0] = 0;			soundstr[0] = 0;			if (myTeam == SIEGETEAM_TEAM1)			{				Com_sprintf(teamstr, sizeof(teamstr), "sound_team1");			}			else			{				Com_sprintf(teamstr, sizeof(teamstr), "sound_team2");			}			if (BG_SiegeGetPairedValue(foundobjective, teamstr, appstring))			{				Com_sprintf(soundstr, sizeof(soundstr), appstring);			}			/*			else			{				if (myTeam != won)				{					Com_sprintf(soundstr, sizeof(soundstr), DEFAULT_LOSE_OBJECTIVE);				}				else				{					Com_sprintf(soundstr, sizeof(soundstr), DEFAULT_WIN_OBJECTIVE);				}			}			*/			if (soundstr[0])			{				trap_S_StartLocalSound(trap_S_RegisterSound(soundstr), CHAN_ANNOUNCER);			}		}	}}
开发者ID:ForcePush,项目名称:OJPRPFZ,代码行数:101,


示例19: CG_CheckLocalSounds

/*==================CG_CheckLocalSounds==================*/void CG_CheckLocalSounds(playerState_t *ps, playerState_t *ops){	// health changes of more than -1 should make pain sounds	if (ps->stats[STAT_HEALTH] < ops->stats[STAT_HEALTH] - 1)	{		if (ps->stats[STAT_HEALTH] > 0)		{			CG_PainEvent(&cg.predictedPlayerEntity, ps->stats[STAT_HEALTH], qfalse);			cg.painTime = cg.time;		}	}	// hitsounds	// add server control cvars?! - no, admins just have to force cg_hitSounds	if (ops->persistant[PERS_HITS] != ps->persistant[PERS_HITS] && (cg_hitSounds.integer & HITSOUNDS_ON))	{		if (ps->persistant[PERS_HITS] < ops->persistant[PERS_HITS])		{			if (!(cg_hitSounds.integer & HITSOUNDS_NOTEAMSHOT))			{				trap_S_StartSound(NULL, ps->clientNum, CHAN_AUTO, cgs.media.teamShot);			}		}		else if (ps->persistant[PERS_HEADSHOTS] > ops->persistant[PERS_HEADSHOTS])		{			if (!(cg_hitSounds.integer & HITSOUNDS_NOHEADSHOT))			{				trap_S_StartSound(NULL, ps->clientNum, CHAN_AUTO, cgs.media.headShot);			}			else if (!(cg_hitSounds.integer & HITSOUNDS_NOBODYSHOT))			{				trap_S_StartSound(NULL, ps->clientNum, CHAN_AUTO, cgs.media.bodyShot);			}		}		else		{			if (!(cg_hitSounds.integer & HITSOUNDS_NOBODYSHOT))			{				trap_S_StartSound(NULL, ps->clientNum, CHAN_AUTO, cgs.media.bodyShot);			}		}	}	// timelimit warnings	if (cgs.timelimit > 0 && cgs.gamestate == GS_PLAYING)	{		int msec = cg.time - cgs.levelStartTime;		if (cgs.timelimit > 5 && !(cg.timelimitWarnings & 1) && (msec > (cgs.timelimit - 5) * 60 * 1000) &&		    (msec < (cgs.timelimit - 5) * 60 * 1000 + 1000))		{			cg.timelimitWarnings |= 1;			if (ps->persistant[PERS_TEAM] == TEAM_AXIS)			{				if (cgs.media.fiveMinuteSound_g == -1)				{					CG_SoundPlaySoundScript(cg.fiveMinuteSound_g, NULL, -1, qtrue);				}				else if (cgs.media.fiveMinuteSound_g)				{					trap_S_StartLocalSound(cgs.media.fiveMinuteSound_g, CHAN_ANNOUNCER);				}			}			else if (ps->persistant[PERS_TEAM] == TEAM_ALLIES)			{				if (cgs.media.fiveMinuteSound_a == -1)				{					CG_SoundPlaySoundScript(cg.fiveMinuteSound_a, NULL, -1, qtrue);				}				else if (cgs.media.fiveMinuteSound_a)				{					trap_S_StartLocalSound(cgs.media.fiveMinuteSound_a, CHAN_ANNOUNCER);				}			}		}		if (cgs.timelimit > 2 && !(cg.timelimitWarnings & 2) && (msec > (cgs.timelimit - 2) * 60 * 1000) &&		    (msec < (cgs.timelimit - 2) * 60 * 1000 + 1000))		{			cg.timelimitWarnings |= 2;			if (ps->persistant[PERS_TEAM] == TEAM_AXIS)			{				if (cgs.media.twoMinuteSound_g == -1)				{					CG_SoundPlaySoundScript(cg.twoMinuteSound_g, NULL, -1, qtrue);				}				else if (cgs.media.twoMinuteSound_g)				{					trap_S_StartLocalSound(cgs.media.twoMinuteSound_g, CHAN_ANNOUNCER);				}			}			else if (ps->persistant[PERS_TEAM] == TEAM_ALLIES)			{				if (cgs.media.twoMinuteSound_a == -1)				{//.........这里部分代码省略.........
开发者ID:ic319,项目名称:etlegacy,代码行数:101,


示例20: CG_CheckAmmo

/*==============CG_CheckAmmoIf the ammo has gone low enough to generate the warning, play a sound==============*/void CG_CheckAmmo( void ) {#if 0	int		i;	int		total;	int		previous;	int		weapons;	// see about how many seconds of ammo we have remaining	weapons = cg.snap->ps.stats[ STAT_WEAPONS ];	total = 0;	for ( i = WP_BRYAR_PISTOL; i < WP_NUM_WEAPONS ; i++ ) {		if ( ! ( weapons & ( 1 << i ) ) ) {			continue;		}		switch ( i ) 		{		case WP_BRYAR_PISTOL:		case WP_CONCUSSION:		case WP_BRYAR_OLD:		case WP_BLASTER:		case WP_DISRUPTOR:		case WP_BOWCASTER:		case WP_REPEATER:		case WP_DEMP2:		case WP_FLECHETTE:		case WP_ROCKET_LAUNCHER:		case WP_THERMAL:		case WP_TRIP_MINE:		case WP_DET_PACK:		case WP_EMPLACED_GUN:			total += cg.snap->ps.ammo[weaponData[i].ammoIndex] * 1000;			break;		default:			total += cg.snap->ps.ammo[weaponData[i].ammoIndex] * 200;			break;		}		if ( total >= 5000 ) {			cg.lowAmmoWarning = 0;			return;		}	}	previous = cg.lowAmmoWarning;	if ( total == 0 ) {		cg.lowAmmoWarning = 2;	} else {		cg.lowAmmoWarning = 1;	}	if (cg.snap->ps.weapon == WP_SABER)	{		cg.lowAmmoWarning = 0;	}	// play a sound on transitions	if ( cg.lowAmmoWarning != previous ) {		trap_S_StartLocalSound( cgs.media.noAmmoSound, CHAN_LOCAL_SOUND );	}#endif	//disabled silly ammo warning stuff for now}
开发者ID:Camron,项目名称:OpenJK,代码行数:69,


示例21: UI_SPSkillMenu_Key

/*=================UI_SPSkillMenu_Key=================*/static sfxHandle_t UI_SPSkillMenu_Key( int key ) {	if( key == K_MOUSE2 || key == K_ESCAPE ) {		trap_S_StartLocalSound( skillMenuInfo.silenceSound, CHAN_ANNOUNCER );	}	return Menu_DefaultKey( &skillMenuInfo.menu, key );}
开发者ID:mtrencseni,项目名称:quake3,代码行数:11,


示例22: CG_EntityEvent

//.........这里部分代码省略.........							else//#endif							CG_AddBufferedSound( cgs.media.yourTeamTookEnemyFlagSound );						}					}					break;				case GTS_REDOBELISK_ATTACKED: // Overload: red obelisk is being attacked					if (cgs.clientinfo[cg.clientNum].team == TEAM_RED) {						CG_AddBufferedSound( cgs.media.yourBaseIsUnderAttackSound );					}					break;				case GTS_BLUEOBELISK_ATTACKED: // Overload: blue obelisk is being attacked					if (cgs.clientinfo[cg.clientNum].team == TEAM_BLUE) {						CG_AddBufferedSound( cgs.media.yourBaseIsUnderAttackSound );					}					break;				case GTS_REDTEAM_SCORED:					CG_AddBufferedSound(cgs.media.redScoredSound);					break;				case GTS_BLUETEAM_SCORED:					CG_AddBufferedSound(cgs.media.blueScoredSound);					break;				case GTS_REDTEAM_TOOK_LEAD:					CG_AddBufferedSound(cgs.media.redLeadsSound);					break;				case GTS_BLUETEAM_TOOK_LEAD:					CG_AddBufferedSound(cgs.media.blueLeadsSound);					break;				case GTS_TEAMS_ARE_TIED:					CG_AddBufferedSound( cgs.media.teamsTiedSound );					break;				case GTS_KAMIKAZE:					trap_S_StartLocalSound(cgs.media.kamikazeFarSound, CHAN_ANNOUNCER);					break;				default:					break;			}			break;		}	case EV_PAIN:		// local player sounds are triggered in CG_CheckLocalSounds,		// so ignore events on the player		DEBUGNAME("EV_PAIN");		if ( cent->currentState.number != cg.snap->ps.clientNum ) {			CG_PainEvent( cent, es->eventParm );		}		break;	case EV_DEATH1:	case EV_DEATH2:	case EV_DEATH3:		DEBUGNAME("EV_DEATHx");		if (CG_WaterLevel(cent) >= 1) {			trap_S_StartSound(NULL, es->number, CHAN_VOICE, CG_CustomSound(es->number, "*drown.wav"));		} else {			trap_S_StartSound(NULL, es->number, CHAN_VOICE, CG_CustomSound(es->number, va("*death%i.wav", event - EV_DEATH1 + 1)));		}		break;	case EV_OBITUARY:		DEBUGNAME("EV_OBITUARY");
开发者ID:OpenArena,项目名称:legacy,代码行数:67,


示例23: UI_SPSkillMenu_Init

//.........这里部分代码省略.........	skillMenuInfo.art_banner.color				= color_white;	skillMenuInfo.art_banner.style				= UI_CENTER;	skillMenuInfo.item_baby.generic_mc.type		= MTYPE_PTEXT;	skillMenuInfo.item_baby.generic_mc.flags		= QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;	skillMenuInfo.item_baby.generic_mc.x			= 320;	skillMenuInfo.item_baby.generic_mc.y			= 170;	skillMenuInfo.item_baby.generic_mc.callback	= UI_SPSkillMenu_SkillEvent;	skillMenuInfo.item_baby.generic_mc.id			= ID_BABY;	skillMenuInfo.item_baby.string				= "I Can Win";	skillMenuInfo.item_baby.color				= color_red;	skillMenuInfo.item_baby.style				= UI_CENTER;	skillMenuInfo.item_easy.generic_mc.type		= MTYPE_PTEXT;	skillMenuInfo.item_easy.generic_mc.flags		= QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;	skillMenuInfo.item_easy.generic_mc.x			= 320;	skillMenuInfo.item_easy.generic_mc.y			= 198;	skillMenuInfo.item_easy.generic_mc.callback	= UI_SPSkillMenu_SkillEvent;	skillMenuInfo.item_easy.generic_mc.id			= ID_EASY;	skillMenuInfo.item_easy.string				= "Bring It On";	skillMenuInfo.item_easy.color				= color_red;	skillMenuInfo.item_easy.style				= UI_CENTER;	skillMenuInfo.item_medium.generic_mc.type		= MTYPE_PTEXT;	skillMenuInfo.item_medium.generic_mc.flags		= QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;	skillMenuInfo.item_medium.generic_mc.x			= 320;	skillMenuInfo.item_medium.generic_mc.y			= 227;	skillMenuInfo.item_medium.generic_mc.callback	= UI_SPSkillMenu_SkillEvent;	skillMenuInfo.item_medium.generic_mc.id		= ID_MEDIUM;	skillMenuInfo.item_medium.string			= "Hurt Me Plenty";	skillMenuInfo.item_medium.color				= color_red;	skillMenuInfo.item_medium.style				= UI_CENTER;	skillMenuInfo.item_hard.generic_mc.type		= MTYPE_PTEXT;	skillMenuInfo.item_hard.generic_mc.flags		= QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;	skillMenuInfo.item_hard.generic_mc.x			= 320;	skillMenuInfo.item_hard.generic_mc.y			= 255;	skillMenuInfo.item_hard.generic_mc.callback	= UI_SPSkillMenu_SkillEvent;	skillMenuInfo.item_hard.generic_mc.id			= ID_HARD;	skillMenuInfo.item_hard.string				= "Hardcore";	skillMenuInfo.item_hard.color				= color_red;	skillMenuInfo.item_hard.style				= UI_CENTER;	skillMenuInfo.item_nightmare.generic_mc.type		= MTYPE_PTEXT;	skillMenuInfo.item_nightmare.generic_mc.flags		= QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;	skillMenuInfo.item_nightmare.generic_mc.x			= 320;	skillMenuInfo.item_nightmare.generic_mc.y			= 283;	skillMenuInfo.item_nightmare.generic_mc.callback	= UI_SPSkillMenu_SkillEvent;	skillMenuInfo.item_nightmare.generic_mc.id			= ID_NIGHTMARE;	skillMenuInfo.item_nightmare.string				= "NIGHTMARE!";	skillMenuInfo.item_nightmare.color				= color_red;	skillMenuInfo.item_nightmare.style				= UI_CENTER;	skillMenuInfo.item_back.generic_mc.type		= MTYPE_BITMAP;	skillMenuInfo.item_back.generic_mc.name		= ART_BACK;	skillMenuInfo.item_back.generic_mc.flags		= QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;	skillMenuInfo.item_back.generic_mc.x			= 0;	skillMenuInfo.item_back.generic_mc.y			= 480-64;	skillMenuInfo.item_back.generic_mc.callback	= UI_SPSkillMenu_BackEvent;	skillMenuInfo.item_back.generic_mc.id			= ID_BACK;	skillMenuInfo.item_back.width				= 128;	skillMenuInfo.item_back.height				= 64;	skillMenuInfo.item_back.focuspic			= ART_BACK_FOCUS;	skillMenuInfo.art_skillPic.generic_mc.type		= MTYPE_BITMAP;	skillMenuInfo.art_skillPic.generic_mc.flags	= QMF_LEFT_JUSTIFY|QMF_INACTIVE;	skillMenuInfo.art_skillPic.generic_mc.x		= 320-64;	skillMenuInfo.art_skillPic.generic_mc.y		= 368;	skillMenuInfo.art_skillPic.width			= 128;	skillMenuInfo.art_skillPic.height			= 96;	skillMenuInfo.item_fight.generic_mc.type		= MTYPE_BITMAP;	skillMenuInfo.item_fight.generic_mc.name		= ART_FIGHT;	skillMenuInfo.item_fight.generic_mc.flags		= QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;	skillMenuInfo.item_fight.generic_mc.callback	= UI_SPSkillMenu_FightEvent;	skillMenuInfo.item_fight.generic_mc.id			= ID_FIGHT;	skillMenuInfo.item_fight.generic_mc.x			= 640;	skillMenuInfo.item_fight.generic_mc.y			= 480-64;	skillMenuInfo.item_fight.width				= 128;	skillMenuInfo.item_fight.height				= 64;	skillMenuInfo.item_fight.focuspic			= ART_FIGHT_FOCUS;	Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.art_frame );	Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.art_banner );	Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_baby );	Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_easy );	Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_medium );	Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_hard );	Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_nightmare );	Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.art_skillPic );	Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_back );	Menu_AddItem( &skillMenuInfo.menu, ( void * )&skillMenuInfo.item_fight );	skill = (int)Com_Clamp( 1, 5, trap_Cvar_VariableValue( "g_spSkill" ) );	SetSkillColor( skill, color_white );	skillMenuInfo.art_skillPic.shader = skillMenuInfo.skillpics[skill - 1];	if( skill == 5 ) {		trap_S_StartLocalSound( skillMenuInfo.nightmareSound, CHAN_ANNOUNCER );	}}
开发者ID:mtrencseni,项目名称:quake3,代码行数:101,


示例24: UI_DrawPlayer

void UI_DrawPlayer( float x, float y, float w, float h, playerInfo_t *pi, int time ) {	refdef_t refdef;	refEntity_t legs = {0};	refEntity_t torso = {0};	refEntity_t head = {0};	refEntity_t gun = {0};	refEntity_t backpack = {0};	refEntity_t helmet = {0};//	refEntity_t		barrel = {0};	refEntity_t flash = {0};	vec3_t origin;	int renderfx;	vec3_t mins = {-16, -16, -24};	vec3_t maxs = {16, 16, 32};	float len;	float xx;	vec4_t hcolor = { 1, 0, 0, 0.5 };	const char      *torso_anim = NULL, *legs_anim = NULL;	if ( !pi->legsModel || !pi->torsoModel || !pi->headModel || !pi->animations[0].numFrames ) {		return;	}	dp_realtime = time;	if ( pi->pendingWeapon != WP_NUM_WEAPONS && dp_realtime > pi->weaponTimer ) {		pi->weapon = pi->pendingWeapon;		pi->lastWeapon = pi->pendingWeapon;		pi->pendingWeapon = WP_NUM_WEAPONS;		pi->weaponTimer = 0;		if ( pi->currentWeapon != pi->weapon ) {			trap_S_StartLocalSound( trap_S_RegisterSound( "sound/weapons/change.wav" ), CHAN_LOCAL );		}	}	UI_AdjustFrom640( &x, &y, &w, &h );	y -= jumpHeight;	memset( &refdef, 0, sizeof( refdef ) );	memset( &legs, 0, sizeof( legs ) );	memset( &torso, 0, sizeof( torso ) );	memset( &head, 0, sizeof( head ) );	refdef.rdflags = RDF_NOWORLDMODEL;	AxisClear( refdef.viewaxis );	refdef.x = x;	refdef.y = y;	refdef.width = w;	refdef.height = h;	refdef.fov_x = (int)((float)refdef.width / uiInfo.uiDC.xscale / 640.0f * 90.0f);	xx = refdef.width / uiInfo.uiDC.xscale / tan( refdef.fov_x / 360 * M_PI );	refdef.fov_y = atan2( refdef.height / uiInfo.uiDC.yscale, xx );	refdef.fov_y *= ( 360 / M_PI );	// calculate distance so the player nearly fills the box	len = 1.01 * ( maxs[2] - mins[2] );                         // NERVE - SMF - changed from 0.7	origin[0] = len / tan( DEG2RAD( refdef.fov_x ) * 0.5 );	origin[1] = 0.5 * ( mins[1] + maxs[1] );	origin[2] = -0.5 * ( mins[2] + maxs[2] );	refdef.time = dp_realtime;	trap_R_SetColor( hcolor );	trap_R_ClearScene();	trap_R_SetColor( NULL );	// get the rotation information	UI_PlayerAngles( pi, legs.axis, torso.axis, head.axis );	// get the animation state (after rotation, to allow feet shuffle)//	UI_PlayerAnimation( pi, &legs.oldframe, &legs.frame, &legs.backlerp,//		 &torso.oldframe, &torso.frame, &torso.backlerp );	renderfx = RF_LIGHTING_ORIGIN | RF_NOSHADOW;	//	// add the body	//	legs.hModel = pi->legsModel;	legs.customSkin = pi->legsSkin;	legs.renderfx = renderfx;	VectorCopy( origin, legs.origin );	VectorCopy( origin, legs.lightingOrigin );	VectorCopy( legs.origin, legs.oldorigin );	WM_getWeaponAnim( &torso_anim, &legs_anim );	if ( torso_anim ) {		legs.torsoFrame = UI_GetAnimation( pi, torso_anim );		legs.oldTorsoFrame = UI_GetAnimation( pi, torso_anim );	}	legs.torsoBacklerp = 0; //torso.backlerp;	if ( legs_anim ) {		legs.frame = UI_GetAnimation( pi, legs_anim );//.........这里部分代码省略.........
开发者ID:MAN-AT-ARMS,项目名称:iortcw-archive,代码行数:101,


示例25: CG_CheckLocalSounds

/*==================CG_CheckLocalSounds==================*/void CG_CheckLocalSounds( playerState_t *ps, playerState_t *ops ) {	const char  *s;	int highScore;	// hit changes	if ( ps->persistant[PERS_HITS] > ops->persistant[PERS_HITS] ) {		trap_S_StartLocalSound( cgs.media.hitSound, CHAN_LOCAL_SOUND );	} else if ( ps->persistant[PERS_HITS] < ops->persistant[PERS_HITS] ) {		trap_S_StartLocalSound( cgs.media.hitTeamSound, CHAN_LOCAL_SOUND );	}	// health changes of more than -1 should make pain sounds	if ( ps->stats[STAT_HEALTH] < ops->stats[STAT_HEALTH] - 1 ) {		if ( ps->stats[STAT_HEALTH] > 0 ) {			CG_PainEvent( &cg.predictedPlayerEntity, ps->stats[STAT_HEALTH], qfalse );		}	}	// if we are going into the intermission, don't start any voices	if ( cg.intermissionStarted ) {		return;	}	// reward sounds	if ( ps->persistant[PERS_REWARD_COUNT] > ops->persistant[PERS_REWARD_COUNT] ) {		switch ( ps->persistant[PERS_REWARD] ) {		case REWARD_IMPRESSIVE:			trap_S_StartLocalSound( cgs.media.impressiveSound, CHAN_ANNOUNCER );			cg.rewardTime = cg.time;			cg.rewardShader = cgs.media.medalImpressive;			cg.rewardCount = ps->persistant[PERS_IMPRESSIVE_COUNT];			break;		case REWARD_EXCELLENT:			trap_S_StartLocalSound( cgs.media.excellentSound, CHAN_ANNOUNCER );			cg.rewardTime = cg.time;			cg.rewardShader = cgs.media.medalExcellent;			cg.rewardCount = ps->persistant[PERS_EXCELLENT_COUNT];			break;		case REWARD_DENIED:			trap_S_StartLocalSound( cgs.media.deniedSound, CHAN_ANNOUNCER );			break;		case REWARD_GAUNTLET:			trap_S_StartLocalSound( cgs.media.humiliationSound, CHAN_ANNOUNCER );			// if we are the killer and not the killee, show the award			if ( ps->stats[STAT_HEALTH] ) {				cg.rewardTime = cg.time;				cg.rewardShader = cgs.media.medalGauntlet;				cg.rewardCount = ps->persistant[PERS_GAUNTLET_FRAG_COUNT];			}			break;		default:			CG_Error( "Bad reward_t" );		}	} else {		// lead changes (only if no reward)		s = CG_ConfigString( CS_WARMUP );		if ( !s[0] ) {			// never play lead changes during warmup			if ( ps->persistant[PERS_RANK] != ops->persistant[PERS_RANK] ) {				if ( cgs.gametype >= GT_TEAM ) {					if ( ps->persistant[PERS_RANK] == 2 ) {						trap_S_StartLocalSound( cgs.media.teamsTiedSound, CHAN_ANNOUNCER );					} else if (  ps->persistant[PERS_RANK] == 0 ) {						trap_S_StartLocalSound( cgs.media.redLeadsSound, CHAN_ANNOUNCER );					} else if ( ps->persistant[PERS_RANK] == 1 ) {						trap_S_StartLocalSound( cgs.media.blueLeadsSound, CHAN_ANNOUNCER );					}				} else {					if (  ps->persistant[PERS_RANK] == 0 ) {						trap_S_StartLocalSound( cgs.media.takenLeadSound, CHAN_ANNOUNCER );					} else if ( ps->persistant[PERS_RANK] == RANK_TIED_FLAG ) {						trap_S_StartLocalSound( cgs.media.tiedLeadSound, CHAN_ANNOUNCER );					} else if ( ( ops->persistant[PERS_RANK] & ~RANK_TIED_FLAG ) == 0 ) {						trap_S_StartLocalSound( cgs.media.lostLeadSound, CHAN_ANNOUNCER );					}				}			}		}	}	// timelimit warnings	if ( cgs.timelimit > 0 ) {		int msec;		msec = cg.time - cgs.levelStartTime;		if ( cgs.timelimit > 5 && !( cg.timelimitWarnings & 1 ) && msec > ( cgs.timelimit - 5 ) * 60 * 1000 ) {			cg.timelimitWarnings |= 1;			trap_S_StartLocalSound( cgs.media.fiveMinuteSound, CHAN_ANNOUNCER );		}		if ( !( cg.timelimitWarnings & 2 ) && msec > ( cgs.timelimit - 1 ) * 60 * 1000 ) {			cg.timelimitWarnings |= 2;			trap_S_StartLocalSound( cgs.media.oneMinuteSound, CHAN_ANNOUNCER );		}//.........这里部分代码省略.........
开发者ID:JackalFrost,项目名称:RTCW-WSGF,代码行数:101,


示例26: CG_EntityEvent

//.........这里部分代码省略.........					break;					case PW_DOUBLER:						trap_S_StartSound (NULL, es->number, CHAN_AUTO,	cgs.media.doublerSound );					break;					case PW_AMMOREGEN:						trap_S_StartSound (NULL, es->number, CHAN_AUTO,	cgs.media.ammoregenSound );					break;				}#endif			} else {				trap_S_StartSound (NULL, es->number, CHAN_AUTO,	cgs.media.itemPickupSounds[ index ] );			}			// show icon and name on status bar			for (i = 0; i < CG_MaxSplitView(); i++) {				if ( es->number == cg.snap->pss[i].playerNum ) {					CG_ItemPickup( i, index );				}			}		}		break;	case EV_GLOBAL_ITEM_PICKUP:		DEBUGNAME("EV_GLOBAL_ITEM_PICKUP");		{			int		index;			index = es->eventParm;		// player predicted			if ( index < 1 || index >= BG_NumItems() ) {				break;			}			// powerup pickups are global			trap_S_StartLocalSound( cgs.media.itemPickupSounds[ index ], CHAN_AUTO );			// show icon and name on status bar			for (i = 0; i < CG_MaxSplitView(); i++) {				if ( es->number == cg.snap->pss[i].playerNum ) {					CG_ItemPickup( i, index );				}			}		}		break;	//	// weapon events	//	case EV_NOAMMO:		DEBUGNAME("EV_NOAMMO");//		trap_S_StartSound (NULL, es->number, CHAN_AUTO, cgs.media.noAmmoSound );		for (i = 0; i < CG_MaxSplitView(); i++) {			if ( es->number == cg.snap->pss[i].playerNum ) {				CG_OutOfAmmoChange(i);			}		}		break;	case EV_CHANGE_WEAPON:		DEBUGNAME("EV_CHANGE_WEAPON");		trap_S_StartSound (NULL, es->number, CHAN_AUTO, cgs.media.selectSound );		break;	case EV_FIRE_WEAPON:		DEBUGNAME("EV_FIRE_WEAPON");		CG_FireWeapon( cent );		break;	case EV_USE_ITEM0:
开发者ID:mecwerks,项目名称:revamp,代码行数:67,


示例27: CG_EntityEvent

//.........这里部分代码省略.........#endif                        CG_AddBufferedSound(cgs.media.yourTeamTookEnemyFlagSound);                }            }            break;        case GTS_REDOBELISK_ATTACKED: // Overload: red obelisk is being attacked            if (cgs.clientinfo[cg.clientNum].team == TEAM_RED) {                CG_AddBufferedSound(cgs.media.yourBaseIsUnderAttackSound);            }            break;        case GTS_BLUEOBELISK_ATTACKED: // Overload: blue obelisk is being attacked            if (cgs.clientinfo[cg.clientNum].team == TEAM_BLUE) {                CG_AddBufferedSound(cgs.media.yourBaseIsUnderAttackSound);            }            break;        case GTS_REDTEAM_SCORED:            CG_AddBufferedSound(cgs.media.redScoredSound);            break;        case GTS_BLUETEAM_SCORED:            CG_AddBufferedSound(cgs.media.blueScoredSound);            break;        case GTS_REDTEAM_TOOK_LEAD:            CG_AddBufferedSound(cgs.media.redLeadsSound);            break;        case GTS_BLUETEAM_TOOK_LEAD:            CG_AddBufferedSound(cgs.media.blueLeadsSound);            break;        case GTS_TEAMS_ARE_TIED:            CG_AddBufferedSound(cgs.media.teamsTiedSound);            break;#ifdef MISSIONPACK        case GTS_KAMIKAZE:            trap_S_StartLocalSound(cgs.media.kamikazeFarSound, CHAN_ANNOUNCER);            break;#endif        default:            break;        }        break;    }    case EV_PAIN:        // local player sounds are triggered in CG_CheckLocalSounds,        // so ignore events on the player        DEBUGNAME("EV_PAIN");        if (cent->currentState.number != cg.snap->ps.clientNum) {            CG_PainEvent(cent, es->eventParm);        }        break;    case EV_DEATH1:    case EV_DEATH2:    case EV_DEATH3:        DEBUGNAME("EV_DEATHx");        if (clientNum == cg.predictedPlayerState.clientNum) {            CG_ZoomReset_f();        }        trap_S_StartSound(NULL, es->number, CHAN_VOICE,                          CG_CustomSound(es->number, va("*death%i.wav", event - EV_DEATH1 + 1)));        break;    case EV_OBITUARY:        DEBUGNAME("EV_OBITUARY");        CG_Obituary(es);
开发者ID:bludshot,项目名称:alturt,代码行数:67,



注:本文中的trap_S_StartLocalSound函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ trap_S_StartSound函数代码示例
C++ trap_R_SetColor函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。