/* ================= CG_CalcVrect Sets the coordinates of the rendered window ================= */ void CG_CalcVrect (void) { int size; // the intermission should allways be full screen if ( cg.snap && cg.snap->ps.pm_type == PM_INTERMISSION ) { size = 100; } else { // bound normal viewsize if (cg_viewsize.integer < 30) { cgi_Cvar_Set ("cg_viewsize","30"); size = 30; } else if (cg_viewsize.integer > 100) { cgi_Cvar_Set ("cg_viewsize","100"); size = 100; } else { size = cg_viewsize.integer; } } cg.refdef.width = cgs.glconfig.vidWidth * size * 0.01; cg.refdef.width &= ~1; cg.refdef.height = cgs.glconfig.vidHeight * size * 0.01; cg.refdef.height &= ~1; cg.refdef.x = (cgs.glconfig.vidWidth - cg.refdef.width) * 0.5; cg.refdef.y = (cgs.glconfig.vidHeight - cg.refdef.height) * 0.5; }
/* ================= CG_SizeDown_f Keybinding command ================= */ static void CG_SizeDown_f (void) { cgi_Cvar_Set("cg_viewsize", va("%i",(int)(cg_viewsize.integer-10))); }
/* ==================== CG_DrawLoadingScreen Load screen displays the map pic, the mission briefing and weapons/force powers ==================== */ static void CG_DrawLoadingScreen( qhandle_t levelshot ,const char *mapName) { int xPos,yPos,width,height; vec4_t color; qhandle_t background; int weapons=0, forcepowers=0; // Get mission briefing for load screen if (cgi_SP_GetStringTextString( va("BRIEFINGS_%s",mapName), NULL, 0 ) == 0) { cgi_Cvar_Set( "ui_missionbriefing", "@BRIEFINGS_NONE" ); } else { cgi_Cvar_Set( "ui_missionbriefing", va("@BRIEFINGS_%s",mapName) ); } // Print background if (cgi_UI_GetMenuItemInfo( "loadScreen", "background", &xPos, &yPos, &width, &height, color, &background)) { cgi_R_SetColor( color ); CG_DrawPic( xPos, yPos, width, height, background ); } // Print level pic if (cgi_UI_GetMenuItemInfo( "loadScreen", "mappic", &xPos, &yPos, &width, &height, color, &background)) { //if (!levelshot) //{// No level shot so use screenshot. // CG_DrawPic( xPos, yPos, 1, 1, 0); //force the tess to flush // cgi_R_DrawScreenShot( xPos, yPos+height, width, -height ); //} //else { cgi_R_SetColor( color ); CG_DrawPic( xPos, yPos, width, height, levelshot ); } } // Get player weapons and force power info CG_GetLoadScreenInfo(&weapons,&forcepowers); // Print weapon icons if (weapons) { CG_DrawLoadWeapons(weapons); } // Print force power icons if (forcepowers) { CG_DrawLoadForcePowers(forcepowers); } }
/* ================ CG_ItemPickup A new item was picked up this frame ================ */ void CG_ItemPickup( int itemNum, qboolean bHadItem ) { cg.itemPickup = itemNum; cg.itemPickupTime = cg.time; cg.itemPickupBlendTime = cg.time; if (bg_itemlist[itemNum].classname && bg_itemlist[itemNum].classname[0]) { char text[1024], data[1024]; if (cgi_SP_GetStringTextString("SP_INGAME_PICKUPLINE",text, sizeof(text)) ) { if ( cgi_SP_GetStringTextString( va("SP_INGAME_%s",bg_itemlist[itemNum].classname ), data, sizeof( data ))) { // Com_Printf("%s %s\n", text, data ); cgi_Cvar_Set( "cg_WeaponPickupText", va("%s %s\n", text, data)); cg.weaponPickupTextTime = cg.time + 5000; } } } // see if it should be the grabbed weapon if ( bg_itemlist[itemNum].giType == IT_WEAPON ) { const int nCurWpn = cg.predicted_player_state.weapon; const int nNewWpn = bg_itemlist[itemNum].giTag; if ( nCurWpn == WP_SABER || bHadItem) {//never switch away from the saber! return; } // kef -- check cg_autoswitch... // // 0 == no switching // 1 == automatically switch to best SAFE weapon // 2 == automatically switch to best weapon, safe or otherwise // // NOTE: automatically switching to any weapon you pick up is stupid and annoying and we won't do it. // if ( nNewWpn == WP_SABER ) {//always switch to saber SetWeaponSelectTime(); cg.weaponSelect = nNewWpn; } else if (0 == cg_autoswitch.integer) { // don't switch } else if (1 == cg_autoswitch.integer) { // safe switching if ( (nNewWpn > nCurWpn) && !(nNewWpn == WP_DET_PACK) && !(nNewWpn == WP_TRIP_MINE) && !(nNewWpn == WP_THERMAL) && !(nNewWpn == WP_ROCKET_LAUNCHER) && !(nNewWpn == WP_CONCUSSION) ) { // switch to new wpn // cg.weaponSelectTime = cg.time; SetWeaponSelectTime(); cg.weaponSelect = nNewWpn; } } else if (2 == cg_autoswitch.integer) { // best if (nNewWpn > nCurWpn) { // switch to new wpn // cg.weaponSelectTime = cg.time; SetWeaponSelectTime(); cg.weaponSelect = nNewWpn; } } } }