Esempio n. 1
0
void CG_SiegeRoundOver( centity_t *ent, int won ) {
	int				myTeam, success = 0;
	char			teamstr[64], appstring[1024], soundstr[1024];
	playerState_t	*ps = NULL;

	if ( !siege_valid ) {
		trap->Error( ERR_DROP, "ERROR: Siege data does not exist on client!\n" );
		return;
	}

	// this should always be true, if it isn't though use the predicted ps as a fallback
	ps = cg.snap ? &cg.snap->ps : &cg.predictedPlayerState;

	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 );

		if ( soundstr[0] )
			trap->S_StartLocalSound( trap->S_RegisterSound( soundstr ), CHAN_ANNOUNCER );
	}
}
Esempio n. 2
0
void CG_SiegeBriefingDisplay(int team, int dontshow)
{
	char			teamstr[64];
	char			briefing[8192];
	char			properValue[1024];
	char			objectiveDesc[1024];
	int				i = 1;
	int				useTeam = team;
	qboolean		primary = qfalse;

	if (!siege_valid)
	{
		return;
	}

	if (team == TEAM_SPECTATOR)
	{
		return;
	}

	if (team == SIEGETEAM_TEAM1)
	{
		Com_sprintf(teamstr, sizeof(teamstr), team1);
	}
	else
	{
		Com_sprintf(teamstr, sizeof(teamstr), team2);
	}

	if (useTeam != SIEGETEAM_TEAM1 && useTeam != SIEGETEAM_TEAM2)
	{ //This shouldn't be happening. But just fall back to team 2 anyway.
		useTeam = SIEGETEAM_TEAM2;
	}

	//[SIEGECVARFIX]
	siege_Cvar_Set(va("siege_primobj_inuse"), "0");
	//trap_Cvar_Set(va("siege_primobj_inuse"), "0");
	//[/SIEGECVARFIX]

	while (i < 16)
	{ //do up to 16 objectives I suppose
		//Get the value for this objective on this team
		//Now set the cvar for the menu to display.
		
		//primary = (CG_SiegeGetObjectiveFinal(useTeam, i)>-1)?qtrue:qfalse;
		primary = (CG_SiegeGetObjectiveFinal(useTeam, i)>0)?qtrue:qfalse;

		properValue[0] = 0;
		trap_Cvar_VariableStringBuffer(va("team%i_objective%i", useTeam, i), properValue, 1024);
		if (primary)
		{
			//[SIEGECVARFIX]
			siege_Cvar_Set(va("siege_primobj"), properValue);
			//trap_Cvar_Set(va("siege_primobj"), properValue);
			//[/SIEGECVARFIX]
		}
		else
		{
			//[SIEGECVARFIX]
			siege_Cvar_Set(va("siege_objective%i", i), properValue);
			//trap_Cvar_Set(va("siege_objective%i", i), properValue);
			//[/SIEGECVARFIX]
		}

		//Now set the long desc cvar for the menu to display.
		properValue[0] = 0;
		trap_Cvar_VariableStringBuffer(va("team%i_objective%i_longdesc", useTeam, i), properValue, 1024);
		if (primary)
		{
			//[SIEGECVARFIX]
			siege_Cvar_Set(va("siege_primobj_longdesc"), properValue);
			//trap_Cvar_Set(va("siege_primobj_longdesc"), properValue);
			//[/SIEGECVARFIX]
		}
		else
		{
			//[SIEGECVARFIX]
			siege_Cvar_Set(va("siege_objective%i_longdesc", i), properValue);
			//trap_Cvar_Set(va("siege_objective%i_longdesc", i), properValue);
			//[/SIEGECVARFIX]
		}

		//Now set the gfx cvar for the menu to display.
		properValue[0] = 0;
		trap_Cvar_VariableStringBuffer(va("team%i_objective%i_gfx", useTeam, i), properValue, 1024);
		if (primary)
		{
			//[SIEGECVARFIX]
			siege_Cvar_Set(va("siege_primobj_gfx"), properValue);
			//trap_Cvar_Set(va("siege_primobj_gfx"), properValue);
			//[/SIEGECVARFIX]
		}
		else
		{
			//[SIEGECVARFIX]
			siege_Cvar_Set(va("siege_objective%i_gfx", i), properValue);
			//trap_Cvar_Set(va("siege_objective%i_gfx", i), properValue);
			//[/SIEGECVARFIX]
		}

		//Now set the mapicon cvar for the menu to display.
		properValue[0] = 0;
		trap_Cvar_VariableStringBuffer(va("team%i_objective%i_mapicon", useTeam, i), properValue, 1024);
		if (primary)
		{
			//[SIEGECVARFIX]
			siege_Cvar_Set(va("siege_primobj_mapicon"), properValue);
			//trap_Cvar_Set(va("siege_primobj_mapicon"), properValue);
			//[/SIEGECVARFIX]
		}
		else
		{
			//[SIEGECVARFIX]
			siege_Cvar_Set(va("siege_objective%i_mapicon", i), properValue);
			//trap_Cvar_Set(va("siege_objective%i_mapicon", i), properValue);
			//[/SIEGECVARFIX]
		}

		//Now set the mappos cvar for the menu to display.
		properValue[0] = 0;
		trap_Cvar_VariableStringBuffer(va("team%i_objective%i_mappos", useTeam, i), properValue, 1024);
		if (primary)
		{
			//[SIEGECVARFIX]
			siege_Cvar_Set(va("siege_primobj_mappos"), properValue);
			//trap_Cvar_Set(va("siege_primobj_mappos"), properValue);
			//[/SIEGECVARFIX]
		}
		else
		{
			//[SIEGECVARFIX]
			siege_Cvar_Set(va("siege_objective%i_mappos", i), properValue);
			//trap_Cvar_Set(va("siege_objective%i_mappos", i), properValue);
			//[/SIEGECVARFIX]
		}

		//Now set the description cvar for the objective
		CG_SiegeGetObjectiveDescription(useTeam, i, objectiveDesc);

		if (objectiveDesc[0])
		{ //found a valid objective description
			if ( primary )
			{
				//[SIEGECVARFIX]
				siege_Cvar_Set(va("siege_primobj_desc"), objectiveDesc);
				//this one is marked not in use because it gets primobj
				siege_Cvar_Set(va("siege_objective%i_inuse", i), "0");
				siege_Cvar_Set(va("siege_primobj_inuse"), "1");
				//trap_Cvar_Set(va("siege_primobj_desc"), objectiveDesc);
				////this one is marked not in use because it gets primobj
				//trap_Cvar_Set(va("siege_objective%i_inuse", i), "0");
				//trap_Cvar_Set(va("siege_primobj_inuse"), "1");
				//[/SIEGECVARFIX]

				trap_Cvar_Set(va("team%i_objective%i_inuse", useTeam, i), "1");

			}
			else
			{
				//[SIEGECVARFIX]
				siege_Cvar_Set(va("siege_objective%i_desc", i), objectiveDesc);
				siege_Cvar_Set(va("siege_objective%i_inuse", i), "2");
				//trap_Cvar_Set(va("siege_objective%i_desc", i), objectiveDesc);
				//trap_Cvar_Set(va("siege_objective%i_inuse", i), "2");
				//[/SIEGECVARFIX]
				trap_Cvar_Set(va("team%i_objective%i_inuse", useTeam, i), "2");

			}
		}
		//[SIEGECVARFIX]
		else
		{ //didn't find one, so set the "inuse" cvar to 0 for the objective and mark it non-complete.
		  	properValue[0] = 0;
			trap_Cvar_VariableStringBuffer(va("team%i_objective%i", useTeam, i), properValue, 1024);
			if(properValue[0]) {
				//siege_Cvar_Set(va("siege_objective%i_inuse", i), "0");
				//siege_Cvar_Set(va("siege_objective%i", i), "0");
				trap_Cvar_Set(va("team%i_objective%i_inuse", useTeam, i), "0");
				trap_Cvar_Set(va("team%i_objective%i", useTeam, i), "0");
	
				//siege_Cvar_Set(va("siege_objective%i_mappos", i), "");
				trap_Cvar_Set(va("team%i_objective%i_mappos", useTeam, i), "");
				//siege_Cvar_Set(va("siege_objective%i_gfx", i), "");
				trap_Cvar_Set(va("team%i_objective%i_gfx", useTeam, i), "");
				//siege_Cvar_Set(va("siege_objective%i_mapicon", i), "");
				trap_Cvar_Set(va("team%i_objective%i_mapicon", useTeam, i), "");
			} else break;
		}
		/*else
		{ //didn't find one, so set the "inuse" cvar to 0 for the objective and mark it non-complete.
			trap_Cvar_Set(va("siege_objective%i_inuse", i), "0");
			trap_Cvar_Set(va("siege_objective%i", i), "0");
			trap_Cvar_Set(va("team%i_objective%i_inuse", useTeam, i), "0");
			trap_Cvar_Set(va("team%i_objective%i", useTeam, i), "0");

			trap_Cvar_Set(va("siege_objective%i_mappos", i), "");
			trap_Cvar_Set(va("team%i_objective%i_mappos", useTeam, i), "");
			trap_Cvar_Set(va("siege_objective%i_gfx", i), "");
			trap_Cvar_Set(va("team%i_objective%i_gfx", useTeam, i), "");
			trap_Cvar_Set(va("siege_objective%i_mapicon", i), "");
			trap_Cvar_Set(va("team%i_objective%i_mapicon", useTeam, i), "");
		}*/
		//[/SIEGECVARFIX]

		i++;
	}

	if (dontshow)
	{
		return;
	}

	if (BG_SiegeGetValueGroup(siege_info, teamstr, cgParseObjectives))
	{
		if (BG_SiegeGetPairedValue(cgParseObjectives, "briefing", briefing))
		{
			CG_DrawSiegeMessage(briefing, 1);
		}
	}
}
Esempio n. 3
0
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);
		}
	}
}
Esempio n. 4
0
void CG_SiegeBriefingDisplay( int team, qboolean dontShow ) {
	char teamstr[64] = {};
	char briefing[8192] = {};
	char properValue[1024] = {};
	char objectiveDesc[1024] = {};
	int i, useTeam = team;
	qboolean primary = qfalse;

	if ( !siege_valid )
		return;

	if ( team == TEAM_SPECTATOR )
		return;

	if ( team == SIEGETEAM_TEAM1 )
		Com_sprintf( teamstr, sizeof(teamstr), team1 );
	else
		Com_sprintf( teamstr, sizeof(teamstr), team2 );

	if ( useTeam != SIEGETEAM_TEAM1 && useTeam != SIEGETEAM_TEAM2 )
		useTeam = SIEGETEAM_TEAM2;

	trap->Cvar_Set( "siege_primobj_inuse", "0" );

	for ( i = 1; i<16; i++ ) {
		//Get the value for this objective on this team
		//Now set the cvar for the menu to display.

		//primary = (CG_SiegeGetObjectiveFinal(useTeam, i)>-1)?qtrue:qfalse;
		primary = (CG_SiegeGetObjectiveFinal( useTeam, i ) > 0) ? qtrue : qfalse;

		properValue[0] = '\0';
		trap->Cvar_VariableStringBuffer( va( "team%i_objective%i", useTeam, i ), properValue, sizeof(properValue) );
		if ( primary )
			trap->Cvar_Set( "siege_primobj", properValue );
		else
			trap->Cvar_Set( va( "siege_objective%i", i ), properValue );

		//Now set the long desc cvar for the menu to display.
		properValue[0] = '\0';
		trap->Cvar_VariableStringBuffer( va( "team%i_objective%i_longdesc", useTeam, i ), properValue, sizeof(properValue) );
		if ( primary )
			trap->Cvar_Set( "siege_primobj_longdesc", properValue );
		else
			trap->Cvar_Set( va( "siege_objective%i_longdesc", i ), properValue );

		//Now set the gfx cvar for the menu to display.
		properValue[0] = '\0';
		trap->Cvar_VariableStringBuffer( va( "team%i_objective%i_gfx", useTeam, i ), properValue, sizeof(properValue) );
		if ( primary )
			trap->Cvar_Set( "siege_primobj_gfx", properValue );
		else
			trap->Cvar_Set( va( "siege_objective%i_gfx", i ), properValue );

		//Now set the mapicon cvar for the menu to display.
		properValue[0] = '\0';
		trap->Cvar_VariableStringBuffer( va( "team%i_objective%i_mapicon", useTeam, i ), properValue, sizeof(properValue) );
		if ( primary )
			trap->Cvar_Set( "siege_primobj_mapicon", properValue );
		else
			trap->Cvar_Set( va( "siege_objective%i_mapicon", i ), properValue );

		//Now set the mappos cvar for the menu to display.
		properValue[0] = '\0';
		trap->Cvar_VariableStringBuffer( va( "team%i_objective%i_mappos", useTeam, i ), properValue, sizeof(properValue) );
		if ( primary )
			trap->Cvar_Set( "siege_primobj_mappos", properValue );
		else
			trap->Cvar_Set( va( "siege_objective%i_mappos", i ), properValue );

		//Now set the description cvar for the objective
		CG_SiegeGetObjectiveDescription( useTeam, i, objectiveDesc );

		if ( objectiveDesc[0] ) {
			// found a valid objective description
			if ( primary ) {
				trap->Cvar_Set( "siege_primobj_desc", objectiveDesc );
				// this one is marked not in use because it gets primobj
				trap->Cvar_Set( va( "siege_objective%i_inuse", i ), "0" );
				trap->Cvar_Set( "siege_primobj_inuse", "1" );
				trap->Cvar_Set( va( "team%i_objective%i_inuse", useTeam, i ), "1" );
			}
			else {
				trap->Cvar_Set( va( "siege_objective%i_desc", i ), objectiveDesc );
				trap->Cvar_Set( va( "siege_objective%i_inuse", i ), "2" );
				trap->Cvar_Set( va( "team%i_objective%i_inuse", useTeam, i ), "2" );
			}
		}
		else {
			// didn't find one, so set the "inuse" cvar to 0 for the objective and mark it non-complete.
			trap->Cvar_Set( va( "siege_objective%i_inuse", i ), "0" );
			trap->Cvar_Set( va( "siege_objective%i", i ), "0" );
			trap->Cvar_Set( va( "team%i_objective%i_inuse", useTeam, i ), "0" );
			trap->Cvar_Set( va( "team%i_objective%i", useTeam, i ), "0" );
			trap->Cvar_Set( va( "siege_objective%i_mappos", i ), "" );
			trap->Cvar_Set( va( "team%i_objective%i_mappos", useTeam, i ), "" );
			trap->Cvar_Set( va( "siege_objective%i_gfx", i ), "" );
			trap->Cvar_Set( va( "team%i_objective%i_gfx", useTeam, i ), "" );
			trap->Cvar_Set( va( "siege_objective%i_mapicon", i ), "" );
			trap->Cvar_Set( va( "team%i_objective%i_mapicon", useTeam, i ), "" );
		}
	}

	if ( dontShow )
		return;

	if ( BG_SiegeGetValueGroup( siege_info, teamstr, cgParseObjectives ) ) {
		if ( BG_SiegeGetPairedValue( cgParseObjectives, "briefing", briefing ) )
			CG_DrawSiegeMessage( briefing, 1 );
	}
}