/* ================== R_ChangeDisplaySettingsFast Change window size fastly to custom values, without setting vid mode ================== */ void R_ChangeDisplaySettingsFast( int width, int height ) { //Cvar_SetFloat("vid_mode", VID_NOMODE); Cvar_SetFloat("width", width); Cvar_SetFloat("height", height); glState.width = width; glState.height = height; glState.wideScreen = true; // V_AdjustFov will check for widescreen SCR_VidInit(); }
/* ================== R_ChangeDisplaySettingsFast Change window size fastly to custom values, without setting vid mode ================== */ void R_ChangeDisplaySettingsFast( int width, int height ) { //Cvar_SetFloat("vid_mode", VID_NOMODE); Cvar_SetFloat("width", width); Cvar_SetFloat("height", height); glState.width = width; glState.height = height; if( width * 3 != height * 4 && width * 4 != height * 5 ) glState.wideScreen = true; else glState.wideScreen = false; SCR_VidInit(); }
/* ================== SCR_Init ================== */ void SCR_Init( void ) { if( scr_init ) return; MsgDev( D_NOTE, "SCR_Init()\n" ); scr_centertime = Cvar_Get( "scr_centertime", "2.5", 0, "centerprint hold time" ); cl_levelshot_name = Cvar_Get( "cl_levelshot_name", "*black", 0, "contains path to current levelshot" ); cl_allow_levelshots = Cvar_Get( "allow_levelshots", "0", CVAR_ARCHIVE, "allow engine to use indivdual levelshots instead of 'loading' image" ); scr_loading = Cvar_Get( "scr_loading", "0", 0, "loading bar progress" ); scr_download = Cvar_Get( "scr_download", "0", 0, "downloading bar progress" ); cl_testlights = Cvar_Get( "cl_testlights", "0", 0, "test dynamic lights" ); cl_envshot_size = Cvar_Get( "cl_envshot_size", "256", CVAR_ARCHIVE, "envshot size of cube side" ); scr_dark = Cvar_Get( "v_dark", "0", 0, "starts level from dark screen" ); scr_viewsize = Cvar_Get( "viewsize", "120", CVAR_ARCHIVE, "screen size" ); // register our commands Cmd_AddCommand( "timerefresh", SCR_TimeRefresh_f, "turn quickly and print rendering statistcs" ); Cmd_AddCommand( "skyname", CL_SetSky_f, "set new skybox by basename" ); Cmd_AddCommand( "viewpos", SCR_Viewpos_f, "prints current player origin" ); Cmd_AddCommand( "sizeup", SCR_SizeUp_f, "screen size up to 10 points" ); Cmd_AddCommand( "sizedown", SCR_SizeDown_f, "screen size down to 10 points" ); Com_ResetLibraryError(); if( host.state != HOST_RESTART && !UI_LoadProgs( )) { Sys_Warn( "can't initialize menu library:\n%s", Com_GetLibraryError() ); // this is not fatal for us // console still can't be toggled in-game without extra cmd-line switch if( !host.developer ) host.developer = 1; // we need console, because menu is missing } SCR_LoadCreditsFont (); SCR_InstallParticlePalette (); SCR_RegisterTextures (); SCR_InitCinematic(); CL_InitNetgraph(); SCR_VidInit(); if( host.state != HOST_RESTART ) { if( host.developer && Sys_CheckParm( "-toconsole" )) Cbuf_AddText( "toggleconsole\n" ); else UI_SetActiveMenu( true ); } scr_init = true; }
/* ================== SCR_Init ================== */ void SCR_Init( void ) { if( scr_init ) return; MsgDev( D_NOTE, "SCR_Init()\n" ); scr_centertime = Cvar_Get( "scr_centertime", "2.5", 0, "centerprint hold time" ); cl_levelshot_name = Cvar_Get( "cl_levelshot_name", "*black", 0, "contains path to current levelshot" ); cl_allow_levelshots = Cvar_Get( "allow_levelshots", "0", CVAR_ARCHIVE, "allow engine to use indivdual levelshots instead of 'loading' image" ); scr_loading = Cvar_Get( "scr_loading", "0", 0, "loading bar progress" ); scr_download = Cvar_Get( "scr_download", "0", 0, "downloading bar progress" ); cl_testlights = Cvar_Get( "cl_testlights", "0", 0, "test dynamic lights" ); cl_envshot_size = Cvar_Get( "cl_envshot_size", "256", CVAR_ARCHIVE, "envshot size of cube side" ); scr_dark = Cvar_Get( "v_dark", "0", 0, "starts level from dark screen" ); scr_viewsize = Cvar_Get( "viewsize", "120", CVAR_ARCHIVE, "screen size" ); // register our commands Cmd_AddCommand( "timerefresh", SCR_TimeRefresh_f, "turn quickly and print rendering statistcs" ); Cmd_AddCommand( "skyname", CL_SetSky_f, "set new skybox by basename" ); Cmd_AddCommand( "viewpos", SCR_Viewpos_f, "prints current player origin" ); if( host.state != HOST_RESTART && !UI_LoadProgs( )) { Msg( "^1Error: ^7can't initialize MainUI.dll\n" ); // there is non fatal for us if( !host.developer ) host.developer = 1; // we need console, because menu is missing } SCR_RegisterShaders (); SCR_InitCinematic(); SCR_VidInit(); if( host.state != HOST_RESTART ) { if( host.developer && Sys_CheckParm( "-toconsole" )) Cbuf_AddText( "toggleconsole\n" ); else UI_SetActiveMenu( true ); } scr_init = true; }
/* =============== CL_ChangeGame This is experiment. Use with precaution =============== */ qboolean CL_ChangeGame( const char *gamefolder, qboolean bReset ) { if( Host_IsDedicated() ) return false; if( Q_stricmp( host.gamefolder, gamefolder )) { kbutton_t *mlook, *jlook; qboolean mlook_active = false, jlook_active = false; string mapname, maptitle; int maxEntities; mlook = (kbutton_t *)clgame.dllFuncs.KB_Find( "in_mlook" ); jlook = (kbutton_t *)clgame.dllFuncs.KB_Find( "in_jlook" ); if( mlook && ( mlook->state & 1 )) mlook_active = true; if( jlook && ( jlook->state & 1 )) jlook_active = true; // so reload all images (remote connect) Mod_ClearAll( true ); R_ShutdownImages(); FS_LoadGameInfo( (bReset) ? host.gamefolder : gamefolder ); R_InitImages(); // save parms maxEntities = clgame.maxEntities; Q_strncpy( mapname, clgame.mapname, MAX_STRING ); Q_strncpy( maptitle, clgame.maptitle, MAX_STRING ); Com_ResetLibraryError(); if( !CL_LoadProgs( va( "%s/%s", GI->dll_path, GI->client_lib))) Sys_Warn( "Can't initialize client library\n%s", Com_GetLibraryError() ); // restore parms clgame.maxEntities = maxEntities; Q_strncpy( clgame.mapname, mapname, MAX_STRING ); Q_strncpy( clgame.maptitle, maptitle, MAX_STRING ); // invalidate fonts so we can reloading them again Q_memset( &cls.creditsFont, 0, sizeof( cls.creditsFont )); SCR_InstallParticlePalette(); SCR_LoadCreditsFont(); Con_InvalidateFonts(); SCR_RegisterTextures (); CL_FreeEdicts (); SCR_VidInit (); if( cls.key_dest == key_game ) // restore mouse state clgame.dllFuncs.IN_ActivateMouse(); // restore mlook state if( mlook_active ) Cmd_ExecuteString( "+mlook\n", src_command ); if( jlook_active ) Cmd_ExecuteString( "+jlook\n", src_command ); return true; } return false; }