Esempio n. 1
0
/*
=================
CG_Init

Called after every level change or subsystem restart
Will perform callbacks to make the loading info screen update.
=================
*/
void CG_Init( int serverMessageNum, int serverCommandSequence, int clientNum ) {
	const char	*s;

	// clear everything
	memset( &cgs, 0, sizeof( cgs ) );
	memset( &cg, 0, sizeof( cg ) );
	memset( cg_entities, 0, sizeof(cg_entities) );
	memset( cg_weapons, 0, sizeof(cg_weapons) );

	cg.clientNum = clientNum;

	cgs.processedSnapshotNum = serverMessageNum;
	cgs.serverCommandSequence = serverCommandSequence;

	// load a few needed things before we do any screen updates
	cgs.media.charsetShader		= trap_R_RegisterShader( "interface/fonts/font0.png" );
	cgs.media.whiteShader		= trap_R_RegisterShader( "white" );
	cgs.media.clearShader		= trap_R_RegisterShader( "clear" );
	cgs.media.charsetProp		= trap_R_RegisterShaderNoMip( "interface/fonts/font1.png" );
	cgs.media.charsetPropGlow	= trap_R_RegisterShaderNoMip( "interface/fonts/font1Glow.png" );
	cgs.media.charsetPropB		= trap_R_RegisterShaderNoMip( "interface/fonts/font2.png" );

	CG_RegisterCvars();

	CG_InitConsoleCommands();

	cg.weaponSelect = 1;

	// get the rendering configuration from the client system
	trap_GetGlconfig( &cgs.glconfig );
	cgs.screenXScale = cgs.glconfig.vidWidth / 640.0;
	cgs.screenYScale = cgs.glconfig.vidHeight / 480.0;

	// get the gamestate from the client system
	trap_GetGameState( &cgs.gameState );

	// check version
	s = CG_ConfigString( CS_PRODUCT_VERSION );
	if ( strcmp( s, PRODUCT_VERSION ) ) {
		CG_Error( "Client/Server game mismatch: %s/%s", PRODUCT_VERSION, s );
	}

	s = CG_ConfigString( CS_LEVEL_START_TIME );
	cgs.levelStartTime = atoi( s );

	CG_ParseServerinfo();

	// load the new map
	CG_LoadingString( "collision map" );

	trap_CM_LoadMap( cgs.mapname );
	cg.loading = qtrue;		// force players to load instead of defer

	CG_LoadingString( "sounds" );

	CG_RegisterSounds();

	CG_LoadingString( "graphics" );

	CG_RegisterGraphics();

	CG_LoadingString( "clients" );

	CG_RegisterClients();		// if low on memory, some clients will be deferred


	cg.loading = qfalse;	// future players will be deferred
	CG_InitLocalEntities();

	// ADDING FOR ZEQ2
	CG_FrameHist_Init();
	CG_InitTrails();
	CG_InitParticleSystems();
	CG_InitBeamTables();
	CG_InitRadarBlips();
	// END ADDING

	CG_InitMarkPolys();

	// remove the last loading update
	cg.infoScreenText[0] = 0;

	// Make sure we have update values (scores)
	CG_SetConfigValues();

	CG_LoadingString( "" );
	CG_ShaderStateChanged();

	trap_S_ClearLoopingSounds( qtrue );
}
Esempio n. 2
0
/*
=================
CG_Init

Called after every level change or subsystem restart
Will perform callbacks to make the loading info screen update.
=================
*/
void CG_Init( int serverMessageNum, int serverCommandSequence, int clientNum )
{
	const char* s;
	
	// clear everything
	memset( &cgs, 0, sizeof( cgs ) );
	memset( &cg, 0, sizeof( cg ) );
	memset( cg_entities, 0, sizeof( cg_entities ) );
	
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( "CG_Init: clientNum %i\n", clientNum );
	}
	
	cg.clientNum = clientNum;
	
	cgs.processedSnapshotNum = serverMessageNum;
	cgs.serverCommandSequence = serverCommandSequence;
	
	// load a few needed things before we do any screen updates
	cgs.media.charsetShader     = rf->registerMaterial( "gfx/2d/bigchars" );
	cgs.media.whiteShader       = rf->registerMaterial( "white" );
	
	// init cgame console variables
	AUTOCVAR_RegisterAutoCvars();
	CG_RegisterCvars();
	// init console commands
	AUTOCMD_RegisterAutoConsoleCommands();
	
	// get the rendering configuration from the client system
	cgs.screenXScale = rf->getWinWidth() / 640.0;
	cgs.screenYScale = rf->getWinHeight() / 480.0;
	
	// get the gamestate from the client system
	g_client->GetGameState( &cgs.gameState );
	
	// check version
	s = CG_ConfigString( CS_GAME_VERSION );
	if ( strcmp( s, GAME_VERSION ) )
	{
		CG_Error( "Client/Server game mismatch: %s/%s", GAME_VERSION, s );
	}
	
	s = CG_ConfigString( CS_LEVEL_START_TIME );
	cgs.levelStartTime = atoi( s );
	
	s = CG_ConfigString( CS_WORLD_SKYMATERIAL );
	if ( s && s[0] )
	{
		rf->setSkyMaterial( s );
	}
	s = CG_ConfigString( CS_WORLD_WATERLEVEL );
	if ( s && s[0] )
	{
		rf->setWaterLevel( s );
	}
	s = CG_ConfigString( CS_WORLD_FARPLANE );
	if ( s && s[0] )
	{
		cg.farPlane = atof( s );
	}
	CG_ParseServerinfo();
	
	// clear any references to old media
	rf->clearEntities();
	//trap_R_ClearScene();
	
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( "CG_Init: loading world map \"%s\"...", cgs.mapname );
	}
	// load world map first so inline models are present when requested
	rf->loadWorldMap( cgs.mapname );
	
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( "done.\n" );
	}
	
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( "CG_Init: registering render models..." );
	}
	u32 c_renderModelsLoaded = 0;
	for ( u32 i = 0; i < MAX_MODELS; i++ )
	{
		const char* str = CG_ConfigString( CS_MODELS + i );
		if ( str && str[0] )
		{
			cgs.gameModels[i] = rf->registerModel( str );
			c_renderModelsLoaded++;
		}
	}
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( " %i rModels\n", c_renderModelsLoaded );
		g_loadingScreen->addLoadingString( "CG_Init: registering skins..." );
	}
	u32 c_renderSkinsLoaded = 0;
	for ( u32 i = 0; i < MAX_SKINS; i++ )
	{
		const char* str = CG_ConfigString( CS_SKINS + i );
		if ( str && str[0] )
		{
			//cgs.gameSkins[i] = rf->registerSkin(str);
			c_renderSkinsLoaded++;
		}
	}
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( " %i rSkins\n", c_renderSkinsLoaded );
		g_loadingScreen->addLoadingString( "CG_Init: registering animations..." );
	}
	u32 c_animationsLoaded = 0;
	for ( u32 i = 0; i < MAX_ANIMATIONS; i++ )
	{
		const char* str = CG_ConfigString( CS_ANIMATIONS + i );
		if ( str && str[0] )
		{
			cgs.gameAnims[i] = rf->registerAnimation_getAPI( str );
			c_animationsLoaded++;
		}
	}
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( " %i animations\n", c_animationsLoaded );
		g_loadingScreen->addLoadingString( "CG_Init: registering articulated figures decls..." );
	}
	u32 c_afsLoaded = 0;
	for ( u32 i = 0; i < MAX_RAGDOLLDEFS; i++ )
	{
		const char* str = CG_ConfigString( CS_RAGDOLLDEFSS + i );
		if ( str && str[0] )
		{
			cgs.gameAFs[i] = g_declMgr->registerAFDecl( str );
			c_afsLoaded++;
		}
	}
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( " %i AFs\n", c_afsLoaded );
		g_loadingScreen->addLoadingString( "CG_Init: registering collision models..." );
	}
	u32 c_collisionModelsLoaded = 0;
	for ( u32 i = 0; i < MAX_MODELS; i++ )
	{
		const char* str = CG_ConfigString( CS_COLLMODELS + i );
		if ( str && str[0] )
		{
			cgs.gameCollModels[i] = cm->registerModel( str );
			c_collisionModelsLoaded++;
		}
	}
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( " %i cmModels\n", c_collisionModelsLoaded );
		g_loadingScreen->addLoadingString( "CG_Init: registering materials..." );
	}
	u32 c_renderMaterialsLoaded = 0;
	for ( u32 i = 0; i < MAX_MATERIALS; i++ )
	{
		const char* str = CG_ConfigString( CS_MATERIALS + i );
		if ( str && str[0] )
		{
			cgs.gameMaterials[i] = rf->registerMaterial( str );
			c_renderMaterialsLoaded++;
		}
	}
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( " %i materials\n", c_renderMaterialsLoaded );
		g_loadingScreen->addLoadingString( "CG_Init: registering sounds..." );
	}
	u32 c_soundsLoaded = 0;
	for ( u32 i = 0; i < MAX_SOUNDS; i++ )
	{
		const char* str = CG_ConfigString( CS_SOUNDS + i );
		if ( str && str[0] )
		{
			//          cgs.gameSounds[i] = 0;//snd->registerSound(str);
			c_soundsLoaded++;
		}
	}
	if ( g_loadingScreen )  // update loading screen (if its present)
	{
		g_loadingScreen->addLoadingString( " %i sounds\n", c_soundsLoaded );
	}
	
	//  cg.loading = false; // future players will be deferred
}
Esempio n. 3
0
/*
=================
CG_Init

Called after every level change or subsystem restart
Will perform callbacks to make the loading info screen update.
=================
*/
void CG_Init( int serverMessageNum, int serverCommandSequence, int clientNum ) {
	const char	*s;

	// clear everything
	memset( &cgs, 0, sizeof( cgs ) );
	memset( &cg, 0, sizeof( cg ) );
	memset( cg_entities, 0, sizeof(cg_entities) );
	memset( cg_weapons, 0, sizeof(cg_weapons) );
	memset( cg_items, 0, sizeof(cg_items) );

	cg.clientNum = clientNum;

	cgs.processedSnapshotNum = serverMessageNum;
	cgs.serverCommandSequence = serverCommandSequence;

	// load a few needed things before we do any screen updates
	cgs.media.charsetShader		= trap_R_RegisterShader( "gfx/2d/bigchars" );
	cgs.media.whiteShader		= trap_R_RegisterShader( "white" );
	cgs.media.charsetProp		= trap_R_RegisterShaderNoMip( "menu/art/font1_prop.tga" );
	cgs.media.charsetPropGlow	= trap_R_RegisterShaderNoMip( "menu/art/font1_prop_glo.tga" );
	cgs.media.charsetPropB		= trap_R_RegisterShaderNoMip( "menu/art/font2_prop.tga" );

	CG_RegisterCvars();

	CG_InitConsoleCommands();

	cg.weaponSelect = WP_MACHINEGUN;

	cgs.redflag = cgs.blueflag = -1; // For compatibily, default to unset for
	cgs.flagStatus = -1;
	// old servers

	// get the rendering configuration from the client system
	trap_GetGlconfig( &cgs.glconfig );
	cgs.screenXScale = cgs.glconfig.vidWidth / 640.0;
	cgs.screenYScale = cgs.glconfig.vidHeight / 480.0;

	// get the gamestate from the client system
	trap_GetGameState( &cgs.gameState );

	// check version
	s = CG_ConfigString( CS_GAME_VERSION );
	if ( strcmp( s, GAME_VERSION ) ) {
		CG_Error( "Client/Server game mismatch: %s/%s", GAME_VERSION, s );
	}

	s = CG_ConfigString( CS_LEVEL_START_TIME );
	cgs.levelStartTime = atoi( s );

	CG_ParseServerinfo();

	// load the new map
	CG_LoadingString( "collision map" );

	trap_CM_LoadMap( cgs.mapname );

	cg.loading = qtrue;		// force players to load instead of defer

	CG_LoadingString( "sounds" );

	CG_RegisterSounds();

	CG_LoadingString( "graphics" );

	CG_RegisterGraphics();

	CG_LoadingString( "clients" );

	CG_RegisterClients();		// if low on memory, some clients will be deferred

	cg.loading = qfalse;	// future players will be deferred

	CG_InitLocalEntities();

	CG_InitMarkPolys();

	// remove the last loading update
	cg.infoScreenText[0] = 0;

	// Make sure we have update values (scores)
	CG_SetConfigValues();

	CG_StartMusic();

	CG_LoadingString( "" );

	CG_ShaderStateChanged();

	trap_S_ClearLoopingSounds( qtrue );
}
Esempio n. 4
0
/*
=================
CG_Init

Called after every level change or subsystem restart
Will perform callbacks to make the loading info screen update.
=================
*/
void CG_Init( int serverMessageNum, int serverCommandSequence, int clientNum, int randomSeed ) {
	const char	*s;

	// clear everything
	memset( &cgs, 0, sizeof( cgs ) );
	memset( &cg, 0, sizeof( cg ) );
	memset( cg_entities, 0, sizeof(cg_entities) );

	srand( randomSeed );

	cg.clientNum = clientNum;

	cgs.processedSnapshotNum = serverMessageNum;
	cgs.serverCommandSequence = serverCommandSequence;

	trap_R_RegisterFont( "facfont-20", 0, &cgs.media.facfont );
	trap_R_RegisterFont( "verdana-14", 0, &cgs.media.verdana );

	// load a few needed things before we do any screen updates
//	cgs.media.charsetShader		= trap_R_RegisterShader( "gfx/2d/bigchars" );
	cgs.media.whiteShader		= trap_R_RegisterShader( "*white" );
//	cgs.media.charsetProp		= trap_R_RegisterShaderNoMip( "menu/art/font1_prop.tga" );
//	cgs.media.charsetPropGlow	= trap_R_RegisterShaderNoMip( "menu/art/font1_prop_glo.tga" );
//	cgs.media.charsetPropB		= trap_R_RegisterShaderNoMip( "menu/art/font2_prop.tga" );
	cgs.media.blackShader = trap_R_RegisterShaderNoMip( "textures/mohmenu/black.tga" );

	CG_RegisterCvars();

	CG_InitConsoleCommands();

	// get the rendering configuration from the client system
	trap_GetGlconfig( &cgs.glconfig );
	cgs.screenXScale = cgs.glconfig.vidWidth / 640.0;
	cgs.screenYScale = cgs.glconfig.vidHeight / 480.0;

	// get the gamestate from the client system
	trap_GetGameState( &cgs.gameState );

	// check version
	s = CG_ConfigString( CS_GAME_VERSION );
	if ( strcmp( s, GAME_VERSION ) ) {
		CG_Error( "Client/Server game mismatch: %s/%s", GAME_VERSION, s );
	}

	s = CG_ConfigString( CS_LEVEL_START_TIME );
	cgs.levelStartTime = atoi( s );

	CG_ParseServerinfo();

	// load the new map
	CG_LoadingString( "collision map" );

	trap_CM_LoadMap( cgs.mapname );

	CG_LoadingString( "sounds" );

	CG_RegisterSounds();
	CG_LoadUbersound();

	CG_LoadingString( "graphics" );

	CG_RegisterGraphics();

	CG_LoadingString( "clients" );

	CG_RegisterClients();		// if low on memory, some clients will be deferred

	CG_InitLocalEntities();

	CG_InitMarkPolys();

	CG_InitEventSystem();

	CG_InitBeams();

	CG_InitRainEffect();

	// remove the last loading update
	cg.infoScreenText[0] = 0;

	// Make sure we have update values (scores)
	CG_SetConfigValues();

	CG_StartMusic();

	CG_LoadingString( "" );

	trap_S_ClearLoopingSounds( qtrue );
}