This is an automated email from the git hooks/post-receive script. smcv pushed a commit to annotated tag 1.42d in repository iortcw.
commit 21c4a1f1b07c467a4ae02988b5676fa73fb45117 Author: MAN-AT-ARMS <m4n4t4...@gmail.com> Date: Thu Dec 3 11:10:51 2015 -0500 All: Some more placement and visual fixes --- MP/code/cgame/cg_draw.c | 18 ++++- MP/code/cgame/cg_weapons.c | 2 +- MP/code/ui/ui_main.c | 2 +- MP/code/ui/ui_shared.c | 47 ++++++----- SP/code/cgame/cg_draw.c | 179 ++++++++++++++++++++++++++---------------- SP/code/cgame/cg_drawtools.c | 1 - SP/code/cgame/cg_info.c | 2 +- SP/code/cgame/cg_newdraw.c | 14 ---- SP/code/cgame/cg_scoreboard.c | 2 +- SP/code/cgame/cg_weapons.c | 10 +-- SP/code/ui/ui_main.c | 16 +++- SP/code/ui/ui_shared.c | 54 ++++++++++--- 12 files changed, 218 insertions(+), 129 deletions(-) diff --git a/MP/code/cgame/cg_draw.c b/MP/code/cgame/cg_draw.c index 32c0ddd..f2d00f8 100644 --- a/MP/code/cgame/cg_draw.c +++ b/MP/code/cgame/cg_draw.c @@ -1669,6 +1669,10 @@ static void CG_DrawBinocReticle( void ) { CG_DrawPic( 0, 0, 640, 480, cgs.media.binocShaderSimple ); } + if ( cg_fixedAspect.integer ) { + CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); + } + CG_FillRect( 146, 239, 348, 1, color ); CG_FillRect( 188, 234, 1, 13, color ); // ll @@ -3445,7 +3449,12 @@ static void CG_ScreenFade( void ) { return; } - CG_FillRect( 0, 0, 640, 480, cg.fadeColor1 ); + if ( cg_fixedAspect.integer ) { + CG_SetScreenPlacement(PLACE_STRETCH, PLACE_STRETCH); + CG_FillRect( 0, 0, 640, 480, cg.fadeColor1 ); + } else { + CG_FillRect( 0, 0, 640, 480, cg.fadeColor1 ); + } } else { t = ( float )msec * cg.fadeRate; @@ -3456,7 +3465,12 @@ static void CG_ScreenFade( void ) { } if ( color[ 3 ] ) { - CG_FillRect( 0, 0, 640, 480, color ); + if ( cg_fixedAspect.integer ) { + CG_SetScreenPlacement(PLACE_STRETCH, PLACE_STRETCH); + CG_FillRect( 0, 0, 640, 480, color ); + } else { + CG_FillRect( 0, 0, 640, 480, color ); + } } } } diff --git a/MP/code/cgame/cg_weapons.c b/MP/code/cgame/cg_weapons.c index 7908a63..4c0a80a 100644 --- a/MP/code/cgame/cg_weapons.c +++ b/MP/code/cgame/cg_weapons.c @@ -2926,7 +2926,7 @@ void CG_DrawWeaponSelect( void ) { trap_R_SetColor( color ); if ( cg_fixedAspect.integer == 2 ) { - CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); + CG_SetScreenPlacement(PLACE_RIGHT, PLACE_TOP); } //----(SA) neither of these overlap the weapon selection area anymore, so let them stay diff --git a/MP/code/ui/ui_main.c b/MP/code/ui/ui_main.c index 00c002c..819d1a3 100644 --- a/MP/code/ui/ui_main.c +++ b/MP/code/ui/ui_main.c @@ -1745,7 +1745,7 @@ static void UI_DrawMapCinematic( rectDef_t *rect, float scale, vec4_t color, qbo if ( uiInfo.mapList[map].cinematic == -1 ) { uiInfo.mapList[map].cinematic = trap_CIN_PlayCinematic( va( "%s.roq", uiInfo.mapList[map].mapLoadName ), 0, 0, 0, 0, ( CIN_loop | CIN_silent ) ); } - if ( uiInfo.mapList[map].cinematic >= 0 ) { + if ( uiInfo.mapList[map].cinematic >= 0 ) { trap_CIN_RunCinematic( uiInfo.mapList[map].cinematic ); // FIXME:MAN-AT-ARMS Scale this trap_CIN_SetExtents( uiInfo.mapList[map].cinematic, rect->x, rect->y, rect->w, rect->h ); diff --git a/MP/code/ui/ui_shared.c b/MP/code/ui/ui_shared.c index 8464b8d..252fd18 100644 --- a/MP/code/ui/ui_shared.c +++ b/MP/code/ui/ui_shared.c @@ -93,6 +93,7 @@ static qboolean Menu_OverActiveItem( menuDef_t *menu, float x, float y ); static char memoryPool[MEM_POOL_SIZE]; static int allocPoint, outOfMemory; +vmCvar_t ui_fixedAspect; static screenPlacement_e ui_horizontalPlacement = PLACE_CENTER; static screenPlacement_e ui_verticalPlacement = PLACE_CENTER; @@ -144,7 +145,6 @@ screenPlacement_e UI_GetScreenVerticalPlacement(void) return ui_verticalPlacement; } -vmCvar_t ui_fixedAspect; /* ================ @@ -792,10 +792,24 @@ void Window_Paint( Window *w, float fadeAmount, float fadeClamp, float fadeCycle fillRect.h -= w->borderSize + 1; } - // Make pillarbox/letterbox for 4:3 UI + // Make menus letterboxed if aspect is < 4:3 + if ( ui_fixedAspect.integer ) { + if ( DC->glconfig.vidWidth * 480.0 < DC->glconfig.vidHeight * 640.0 ) { + vec4_t col = {0, 0, 0, 1}; + float lb = 0.5 * ( ( DC->glconfig.vidHeight - ( DC->yscale * 480.0 ) ) / DC->yscale ); + + UI_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); + DC->fillRect( 0, 480 - lb, 640, lb + 1, col ); + UI_SetScreenPlacement(PLACE_LEFT, PLACE_TOP); + DC->fillRect( 0, 0, 640, lb + 1, col ); + UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); + } + } + + // Make menus pillarboxed if using 4:3 UI if ( ui_fixedAspect.integer == 1 || !Q_stricmpn( w->name, "wm_limbo", 8 ) ) { - vec4_t col = {0, 0, 0, 1}; if ( DC->glconfig.vidWidth * 480.0 > DC->glconfig.vidHeight * 640.0 ) { + vec4_t col = {0, 0, 0, 1}; float pillar = 0.5 * ( ( DC->glconfig.vidWidth - ( DC->xscale * 640.0 ) ) / DC->xscale ); UI_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); @@ -803,33 +817,16 @@ void Window_Paint( Window *w, float fadeAmount, float fadeClamp, float fadeCycle UI_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); DC->fillRect( 640 - pillar, 0, pillar + 1, 480, col ); UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); - } else if ( DC->glconfig.vidWidth * 480.0 < DC->glconfig.vidHeight * 640.0 ) { - float lb = 0.5 * ( ( DC->glconfig.vidHeight - ( DC->yscale * 480.0 ) ) / DC->yscale ); - - UI_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); - DC->fillRect( 0, 480 - lb, 640, lb + 1, col ); - UI_SetScreenPlacement(PLACE_LEFT, PLACE_TOP); - DC->fillRect( 0, 0, 640, lb + 1, col ); - UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } } if ( w->style == WINDOW_STYLE_FILLED ) { // box, but possible a shader that needs filled if ( w->background ) { - if ( ui_fixedAspect.integer == 2 ) { - UI_SetScreenPlacement(PLACE_CENTER, PLACE_STRETCH); - Fade( &w->flags, &w->backColor[3], fadeClamp, &w->nextTime, fadeCycle, qtrue, fadeAmount ); - DC->setColor( w->backColor ); - DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); - DC->setColor( NULL ); - UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); - } else { - Fade( &w->flags, &w->backColor[3], fadeClamp, &w->nextTime, fadeCycle, qtrue, fadeAmount ); - DC->setColor( w->backColor ); - DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); - DC->setColor( NULL ); - } + Fade( &w->flags, &w->backColor[3], fadeClamp, &w->nextTime, fadeCycle, qtrue, fadeAmount ); + DC->setColor( w->backColor ); + DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); + DC->setColor( NULL ); } else { DC->fillRect( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->backColor ); } @@ -852,7 +849,7 @@ void Window_Paint( Window *w, float fadeAmount, float fadeClamp, float fadeCycle DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); DC->setColor( NULL ); } else { - UI_SetScreenPlacement(PLACE_CENTER, PLACE_STRETCH); + UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); DC->setColor( NULL ); } diff --git a/SP/code/cgame/cg_draw.c b/SP/code/cgame/cg_draw.c index 46bcd83..54cef3e 100644 --- a/SP/code/cgame/cg_draw.c +++ b/SP/code/cgame/cg_draw.c @@ -476,7 +476,7 @@ static void CG_DrawStatusBarHead( float x ) { VectorClear( angles ); - if ( cg_fixedAspect.integer ) { + if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_CENTER, PLACE_BOTTOM); } @@ -601,17 +601,9 @@ void CG_DrawTeamBackground( int x, int y, int w, int h, float alpha, int team ) return; } - if ( cg_fixedAspect.integer ) { - trap_R_SetColor( hcolor ); - CG_SetScreenPlacement(PLACE_STRETCH, CG_GetScreenVerticalPlacement()); - CG_DrawPic( x, y, w, h, cgs.media.teamStatusBar ); - CG_PopScreenPlacement(); - trap_R_SetColor( NULL ); - } else { - trap_R_SetColor( hcolor ); - CG_DrawPic( x, y, w, h, cgs.media.teamStatusBar ); - trap_R_SetColor( NULL ); - } + trap_R_SetColor( hcolor ); + CG_DrawPic( x, y, w, h, cgs.media.teamStatusBar ); + trap_R_SetColor( NULL ); } ////////////////////// @@ -739,8 +731,6 @@ static void CG_DrawStatusBar( void ) { if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); - } else { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_BOTTOM); } value = ps->ammo[BG_FindAmmoForWeapon( cent->currentState.weapon )]; @@ -843,8 +833,6 @@ static void CG_DrawStatusBar( void ) { if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); - } else { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_BOTTOM); } // @@ -1228,8 +1216,6 @@ static void CG_DrawUpperRight(stereoFrame_t stereoFrame) { if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_RIGHT, PLACE_TOP); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_TOP); } if ( cgs.gametype >= GT_TEAM ) { @@ -1503,7 +1489,7 @@ static void CG_DrawLowerRight( void ) { y = 480 - ICON_SIZE; - if ( cg_fixedAspect.integer ) { + if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); } @@ -1537,7 +1523,7 @@ static void CG_DrawTeamInfo( void ) { return; // disabled } - if ( cg_fixedAspect.integer ) { + if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement( PLACE_LEFT, PLACE_BOTTOM ); } @@ -1566,7 +1552,11 @@ static void CG_DrawTeamInfo( void ) { } trap_R_SetColor( hcolor ); - CG_DrawPic( CHATLOC_X, CHATLOC_Y - h, 640, h, cgs.media.teamStatusBar ); + if ( cg_fixedAspect.integer == 2 ) { + CG_DrawPic( CHATLOC_X, CHATLOC_Y - h, cgs.glconfig.vidWidth, h, cgs.media.teamStatusBar ); + } else { + CG_DrawPic( CHATLOC_X, CHATLOC_Y - h, 640, h, cgs.media.teamStatusBar ); + } trap_R_SetColor( NULL ); hcolor[0] = hcolor[1] = hcolor[2] = 1.0; @@ -1598,8 +1588,6 @@ static void CG_DrawPickupItem( void ) { if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } value = cg.itemPickup; @@ -1664,8 +1652,6 @@ void CG_DrawHoldableItem_old( void ) { if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } value = cg.predictedPlayerState.holdable[cg.holdableSelect]; @@ -1840,7 +1826,7 @@ static void CG_DrawDisconnect( void ) { return; } - if ( cg_fixedAspect.integer ) { + if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); } @@ -1874,8 +1860,6 @@ static void CG_DrawLagometer( void ) { if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_BOTTOM); } // @@ -2103,7 +2087,7 @@ static void CG_DrawWeapReticle( void ) { vec4_t snoopercolor = {0.7, .8, 0.7, 0}; // greenish float snooperBrightness; float x = 80, y, w = 240, h = 240; - float width = 80.0; + float mask = 0, lb = 0; CG_AdjustFrom640( &x, &y, &w, &h ); @@ -2118,14 +2102,29 @@ static void CG_DrawWeapReticle( void ) { if ( weap == WP_SNIPERRIFLE ) { // sides if ( cg_fixedAspect.integer ) { - if ( cgs.glconfig.vidWidth * 480 > cgs.glconfig.vidHeight * 640 ) { - width = 0.5 * ( ( cgs.glconfig.vidWidth - ( min( cgs.screenXScale, cgs.screenYScale ) * 480 ) ) / min( cgs.screenXScale, cgs.screenYScale ) ); + if ( cgs.glconfig.vidWidth * 480.0 > cgs.glconfig.vidHeight * 640.0 ) { + mask = 0.5 * ( ( cgs.glconfig.vidWidth - ( cgs.screenXScale * 480.0 ) ) / cgs.screenXScale ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); + CG_FillRect( 0, 0, mask, 480, color ); + CG_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); + CG_FillRect( 640 - mask, 0, mask, 480, color ); } - CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); - CG_FillRect( 0, 0, width, 480, color ); - CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); - CG_FillRect( 640-width, 0, width, 480, color ); + // sides with letterbox + if ( cgs.glconfig.vidWidth * 480.0 < cgs.glconfig.vidHeight * 640.0 ) { + lb = 0.5 * ( ( cgs.glconfig.vidHeight - ( cgs.screenYScale * 480.0 ) ) / cgs.screenYScale ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); + CG_FillRect( 0, 0, 80, 480, color ); + CG_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); + CG_FillRect( 560, 0, 80, 480, color ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); + CG_FillRect( 0, 480 - lb, 640, lb, color ); + CG_SetScreenPlacement(PLACE_LEFT, PLACE_TOP); + CG_FillRect( 0, 0, 640, lb, color ); + } } else { CG_FillRect( 0, 0, 80, 480, color ); CG_FillRect( 560, 0, 80, 480, color ); @@ -2137,10 +2136,17 @@ static void CG_DrawWeapReticle( void ) { } if ( cgs.media.reticleShaderSimpleQ ) { - trap_R_DrawStretchPic( x, 0, w, h, 0, 0, 1, 1, cgs.media.reticleShaderSimpleQ ); // tl - trap_R_DrawStretchPic( x + w, 0, w, h, 1, 0, 0, 1, cgs.media.reticleShaderSimpleQ ); // tr - trap_R_DrawStretchPic( x, h, w, h, 0, 1, 1, 0, cgs.media.reticleShaderSimpleQ ); // bl - trap_R_DrawStretchPic( x + w, h, w, h, 1, 1, 0, 0, cgs.media.reticleShaderSimpleQ ); // br + if ( cg_fixedAspect.integer ) { + trap_R_DrawStretchPic( x, lb, w, h, 0, 0, 1, 1, cgs.media.reticleShaderSimpleQ ); // tl + trap_R_DrawStretchPic( x + w, lb, w, h, 1, 0, 0, 1, cgs.media.reticleShaderSimpleQ ); // tr + trap_R_DrawStretchPic( x, h + lb, w, h, 0, 1, 1, 0, cgs.media.reticleShaderSimpleQ ); // bl + trap_R_DrawStretchPic( x + w, h + lb, w, h, 1, 1, 0, 0, cgs.media.reticleShaderSimpleQ ); // br + } else { + trap_R_DrawStretchPic( x, 0, w, h, 0, 0, 1, 1, cgs.media.reticleShaderSimpleQ ); // tl + trap_R_DrawStretchPic( x + w, 0, w, h, 1, 0, 0, 1, cgs.media.reticleShaderSimpleQ ); // tr + trap_R_DrawStretchPic( x, h, w, h, 0, 1, 1, 0, cgs.media.reticleShaderSimpleQ ); // bl + trap_R_DrawStretchPic( x + w, h, w, h, 1, 1, 0, 0, cgs.media.reticleShaderSimpleQ ); // br + } } // hairs @@ -2151,14 +2157,29 @@ static void CG_DrawWeapReticle( void ) { } else if ( weap == WP_SNOOPERSCOPE ) { // sides if ( cg_fixedAspect.integer ) { - if ( cgs.glconfig.vidWidth * 480 > cgs.glconfig.vidHeight * 640 ) { - width = 0.5 * ( ( cgs.glconfig.vidWidth - ( min( cgs.screenXScale, cgs.screenYScale ) * 480 ) ) / min( cgs.screenXScale, cgs.screenYScale ) ); + if ( cgs.glconfig.vidWidth * 480.0 > cgs.glconfig.vidHeight * 640.0 ) { + mask = 0.5 * ( ( cgs.glconfig.vidWidth - ( cgs.screenXScale * 480.0 ) ) / cgs.screenXScale ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); + CG_FillRect( 0, 0, mask, 480, color ); + CG_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); + CG_FillRect( 640 - mask, 0, mask, 480, color ); } - CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); - CG_FillRect( 0, 0, width, 480, color ); - CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); - CG_FillRect( 640-width, 0, width, 480, color ); + // sides with letterbox + if ( cgs.glconfig.vidWidth * 480.0 < cgs.glconfig.vidHeight * 640.0 ) { + lb = 0.5 * ( ( cgs.glconfig.vidHeight - ( cgs.screenYScale * 480.0 ) ) / cgs.screenYScale ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); + CG_FillRect( 0, 0, 80, 480, color ); + CG_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); + CG_FillRect( 560, 0, 80, 480, color ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); + CG_FillRect( 0, 480 - lb, 640, lb, color ); + CG_SetScreenPlacement(PLACE_LEFT, PLACE_TOP); + CG_FillRect( 0, 0, 640, lb, color ); + } } else { CG_FillRect( 0, 0, 80, 480, color ); CG_FillRect( 560, 0, 80, 480, color ); @@ -2204,14 +2225,29 @@ static void CG_DrawWeapReticle( void ) { } else if ( weap == WP_FG42SCOPE ) { // sides if ( cg_fixedAspect.integer ) { - if ( cgs.glconfig.vidWidth * 480 > cgs.glconfig.vidHeight * 640 ) { - width = 0.5 * ( ( cgs.glconfig.vidWidth - ( min( cgs.screenXScale, cgs.screenYScale ) * 480 ) ) / min( cgs.screenXScale, cgs.screenYScale ) ); + if ( cgs.glconfig.vidWidth * 480.0 > cgs.glconfig.vidHeight * 640.0 ) { + mask = 0.5 * ( ( cgs.glconfig.vidWidth - ( cgs.screenXScale * 480.0 ) ) / cgs.screenXScale ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); + CG_FillRect( 0, 0, mask, 480, color ); + CG_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); + CG_FillRect( 640 - mask, 0, mask, 480, color ); } - CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); - CG_FillRect( 0, 0, width, 480, color ); - CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); - CG_FillRect( 640-width, 0, width, 480, color ); + // sides with letterbox + if ( cgs.glconfig.vidWidth * 480.0 < cgs.glconfig.vidHeight * 640.0 ) { + lb = 0.5 * ( ( cgs.glconfig.vidHeight - ( cgs.screenYScale * 480.0 ) ) / cgs.screenYScale ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); + CG_FillRect( 0, 0, 80, 480, color ); + CG_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); + CG_FillRect( 560, 0, 80, 480, color ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); + CG_FillRect( 0, 480 - lb, 640, lb, color ); + CG_SetScreenPlacement(PLACE_LEFT, PLACE_TOP); + CG_FillRect( 0, 0, 640, lb, color ); + } } else { CG_FillRect( 0, 0, 80, 480, color ); CG_FillRect( 560, 0, 80, 480, color ); @@ -2223,10 +2259,17 @@ static void CG_DrawWeapReticle( void ) { } if ( cgs.media.reticleShaderSimpleQ ) { - trap_R_DrawStretchPic( x, 0, w, h, 0, 0, 1, 1, cgs.media.reticleShaderSimpleQ ); // tl - trap_R_DrawStretchPic( x + w, 0, w, h, 1, 0, 0, 1, cgs.media.reticleShaderSimpleQ ); // tr - trap_R_DrawStretchPic( x, h, w, h, 0, 1, 1, 0, cgs.media.reticleShaderSimpleQ ); // bl - trap_R_DrawStretchPic( x + w, h, w, h, 1, 1, 0, 0, cgs.media.reticleShaderSimpleQ ); // br + if ( cg_fixedAspect.integer ) { + trap_R_DrawStretchPic( x, lb, w, h, 0, 0, 1, 1, cgs.media.reticleShaderSimpleQ ); // tl + trap_R_DrawStretchPic( x + w, lb, w, h, 1, 0, 0, 1, cgs.media.reticleShaderSimpleQ ); // tr + trap_R_DrawStretchPic( x, h + lb, w, h, 0, 1, 1, 0, cgs.media.reticleShaderSimpleQ ); // bl + trap_R_DrawStretchPic( x + w, h + lb, w, h, 1, 1, 0, 0, cgs.media.reticleShaderSimpleQ ); // br + } else { + trap_R_DrawStretchPic( x, 0, w, h, 0, 0, 1, 1, cgs.media.reticleShaderSimpleQ ); // tl + trap_R_DrawStretchPic( x + w, 0, w, h, 1, 0, 0, 1, cgs.media.reticleShaderSimpleQ ); // tr + trap_R_DrawStretchPic( x, h, w, h, 0, 1, 1, 0, cgs.media.reticleShaderSimpleQ ); // bl + trap_R_DrawStretchPic( x + w, h, w, h, 1, 1, 0, 0, cgs.media.reticleShaderSimpleQ ); // br + } } // hairs @@ -2268,6 +2311,10 @@ static void CG_DrawBinocReticle( void ) { trap_R_DrawStretchPic( w, h, w, h, 1, 1, 0, 0, cgs.media.binocShaderSimpleQ ); // br } + if ( cg_fixedAspect.integer ) { + CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); + } + CG_FillRect( 146, 239, 348, 1, color ); CG_FillRect( 188, 234, 1, 13, color ); // ll @@ -2869,7 +2916,7 @@ CG_DrawSpectator ================= */ static void CG_DrawSpectator( void ) { - if ( cg_fixedAspect.integer ) { + if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_CENTER, PLACE_BOTTOM); } CG_DrawBigString( 320 - 9 * 8, 440, "SPECTATOR", 1.0F ); @@ -2894,8 +2941,8 @@ static void CG_DrawVote( void ) { return; } - if ( cg_fixedAspect.integer ) { - CG_SetScreenPlacement(PLACE_LEFT, PLACE_TOP); + if ( cg_fixedAspect.integer == 2 ) { + CG_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); } // play a talk beep whenever it is modified @@ -2983,8 +3030,8 @@ static qboolean CG_DrawFollow( void ) { return qfalse; } - if ( cg_fixedAspect.integer ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_TOP); + if ( cg_fixedAspect.integer == 2 ) { + CG_SetScreenPlacement(PLACE_LEFT, PLACE_TOP); } color[0] = 1; @@ -3044,7 +3091,7 @@ static void CG_DrawAmmoWarning( void ) { return; } - if ( cg_fixedAspect.integer ) { + if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_CENTER, PLACE_TOP); } @@ -3080,7 +3127,7 @@ static void CG_DrawWarmup( void ) { return; } - if ( cg_fixedAspect.integer ) { + if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_CENTER, PLACE_TOP); } @@ -3349,7 +3396,8 @@ static void CG_DrawFlashFire( void ) { col[3] = alpha; trap_R_SetColor( col ); if ( cg_fixedAspect.integer ) { - trap_R_DrawStretchPic( -10, -10, 650, 490, 0, 0, 1, 1, cgs.media.viewFlashFire[( cg.time / 50 ) % 16] ); + CG_SetScreenPlacement(PLACE_STRETCH, PLACE_STRETCH); + CG_DrawPic( -10, -10, 650, 490, cgs.media.viewFlashFire[( cg.time / 50 ) % 16] ); } else { CG_DrawPic( -10, -10, 650, 490, cgs.media.viewFlashFire[( cg.time / 50 ) % 16] ); } @@ -3391,7 +3439,8 @@ static void CG_DrawFlashLightning( void ) { shader = cgs.media.viewTeslaDamageEffectShader; } if ( cg_fixedAspect.integer ) { - trap_R_DrawStretchPic( -10, -10, 650, 490, 0, 0, 1, 1, shader ); + CG_SetScreenPlacement(PLACE_STRETCH, PLACE_STRETCH); + CG_DrawPic( -10, -10, 650, 490, shader ); } else { CG_DrawPic( -10, -10, 650, 490, shader ); } @@ -3724,8 +3773,6 @@ static void CG_Draw2D(stereoFrame_t stereoFrame) { if ( cg_drawStatus.integer ) { if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_BOTTOM); } if ( !cg_oldWolfUI.integer ) { diff --git a/SP/code/cgame/cg_drawtools.c b/SP/code/cgame/cg_drawtools.c index c1cbd13..55d65ed 100644 --- a/SP/code/cgame/cg_drawtools.c +++ b/SP/code/cgame/cg_drawtools.c @@ -93,7 +93,6 @@ void CG_AdjustFrom640( float *x, float *y, float *w, float *h ) { *x += 0.5 * ( cgs.glconfig.vidWidth - ( cgs.glconfig.vidHeight * 640 / 480 ) ); } #endif - if ( cg_fixedAspect.integer ) { if (cg_horizontalPlacement == PLACE_STRETCH) { // scale for screen sizes (not aspect correct in wide screen) diff --git a/SP/code/cgame/cg_info.c b/SP/code/cgame/cg_info.c index ee0d8d1..2f0cb62 100644 --- a/SP/code/cgame/cg_info.c +++ b/SP/code/cgame/cg_info.c @@ -410,7 +410,7 @@ void CG_DrawInformation( void ) { } if ( !levelshot ) { - trap_R_RegisterShaderNoMip( "levelshots/unknownmap.jpg" ); + levelshot = trap_R_RegisterShaderNoMip( "levelshots/unknownmap.jpg" ); } trap_R_SetColor( NULL ); diff --git a/SP/code/cgame/cg_newdraw.c b/SP/code/cgame/cg_newdraw.c index 3bbe4e5..2cd27f8 100644 --- a/SP/code/cgame/cg_newdraw.c +++ b/SP/code/cgame/cg_newdraw.c @@ -202,8 +202,6 @@ static void CG_DrawPlayerArmorValue( rectDef_t *rect, int font, float scale, vec if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } if ( shader ) { @@ -277,8 +275,6 @@ static void CG_DrawPlayerWeaponIcon( rectDef_t *rect, qboolean drawHighlighted, if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } // DHM - Nerve :: special case for WP_CLASS_SPECIAL @@ -604,8 +600,6 @@ static void CG_DrawPlayerAmmoValue( rectDef_t *rect, int font, float scale, vec4 if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } switch ( weap ) { // some weapons don't draw ammo count text @@ -904,8 +898,6 @@ static void CG_DrawHoldableItem( rectDef_t *rect, int font, float scale, qboolea if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } value = cg.predictedPlayerState.holdable[cg.holdableSelect]; @@ -1081,8 +1073,6 @@ static void CG_DrawPlayerHealth( rectDef_t *rect, int font, float scale, vec4_t if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } if ( shader ) { @@ -2179,8 +2169,6 @@ void CG_DrawWeapHeat( rectDef_t *rect, int align ) { if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } if ( align != HUD_HORIZONTAL ) { @@ -2211,8 +2199,6 @@ static void CG_DrawFatigue( rectDef_t *rect, vec4_t color, int align ) { if ( cg_fixedAspect.integer == 2 ) { CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } if ( align != HUD_HORIZONTAL ) { diff --git a/SP/code/cgame/cg_scoreboard.c b/SP/code/cgame/cg_scoreboard.c index 382067c..4dfa837 100644 --- a/SP/code/cgame/cg_scoreboard.c +++ b/SP/code/cgame/cg_scoreboard.c @@ -636,7 +636,7 @@ void CG_DrawTourneyScoreboard( void ) { color[3] = 1; CG_SetScreenPlacement(PLACE_STRETCH, PLACE_STRETCH); CG_FillRect( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, color ); - CG_PopScreenPlacement(); + CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } else { color[0] = color[1] = color[2] = 0; color[3] = 1; diff --git a/SP/code/cgame/cg_weapons.c b/SP/code/cgame/cg_weapons.c index 29fff31..69e9421 100644 --- a/SP/code/cgame/cg_weapons.c +++ b/SP/code/cgame/cg_weapons.c @@ -3112,12 +3112,6 @@ void CG_DrawWeaponSelect( void ) { int bits[MAX_WEAPONS / ( sizeof( int ) * 8 )]; float *color; - if ( cg_fixedAspect.integer == 2 ) { - CG_SetScreenPlacement(PLACE_RIGHT, PLACE_BOTTOM); - } else if ( cg_fixedAspect.integer == 1 ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_BOTTOM); - } - // don't display if dead if ( cg.predictedPlayerState.stats[STAT_HEALTH] <= 0 ) { return; @@ -3133,6 +3127,10 @@ void CG_DrawWeaponSelect( void ) { } trap_R_SetColor( color ); + if ( cg_fixedAspect.integer == 2 ) { + CG_SetScreenPlacement(PLACE_RIGHT, PLACE_TOP); + } + //----(SA) neither of these overlap the weapon selection area anymore, so let them stay // showing weapon select clears pickup item display, but not the blend blob diff --git a/SP/code/ui/ui_main.c b/SP/code/ui/ui_main.c index 11f8b0f..89f84b5 100644 --- a/SP/code/ui/ui_main.c +++ b/SP/code/ui/ui_main.c @@ -1484,7 +1484,21 @@ static void UI_DrawMapLevelshot( rectDef_t *rect ) { } if ( !levelshot ) { - levelshot = trap_R_RegisterShaderNoMip( "menu/art/unknownmap" ); + levelshot = trap_R_RegisterShaderNoMip( "levelshots/unknownmap.jpg" ); + } + + // HACK Pillarboxing...Copied from ui_shared.c + if ( ui_fixedAspect.integer ) { + if ( DC->glconfig.vidWidth * 480.0 > DC->glconfig.vidHeight * 640.0 ) { + vec4_t col = {0, 0, 0, 1}; + float pillar = 0.5 * ( ( DC->glconfig.vidWidth - ( DC->xscale * 640.0 ) ) / DC->xscale ); + + UI_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); + DC->fillRect( 0, 0, pillar + 1, 480, col ); + UI_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); + DC->fillRect( 640 - pillar, 0, pillar + 1, 480, col ); + UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); + } } UI_DrawHandlePic( rect->x, rect->y, rect->w, rect->h, levelshot ); diff --git a/SP/code/ui/ui_shared.c b/SP/code/ui/ui_shared.c index 55fb9ec..9a89ab7 100644 --- a/SP/code/ui/ui_shared.c +++ b/SP/code/ui/ui_shared.c @@ -146,6 +146,7 @@ translateString_t translateStrings[] = { {"or"} // }; +vmCvar_t ui_fixedAspect; static screenPlacement_e ui_horizontalPlacement = PLACE_CENTER; static screenPlacement_e ui_verticalPlacement = PLACE_CENTER; @@ -197,7 +198,6 @@ screenPlacement_e UI_GetScreenVerticalPlacement(void) return ui_verticalPlacement; } -vmCvar_t ui_fixedAspect; /* ================ @@ -845,13 +845,30 @@ void Window_Paint( Window *w, float fadeAmount, float fadeClamp, float fadeCycle fillRect.h -= w->borderSize + 1; } - // Make pillarbox for 4:3 UI + // Make menus letterboxed if aspect is < 4:3 + if ( ui_fixedAspect.integer ) { + if ( DC->glconfig.vidWidth * 480.0 < DC->glconfig.vidHeight * 640.0 ) { + vec4_t col = {0, 0, 0, 1}; + float lb = 0.5 * ( ( DC->glconfig.vidHeight - ( DC->yscale * 480.0 ) ) / DC->yscale ); + + UI_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); + DC->fillRect( 0, 480 - lb, 640, lb + 1, col ); + UI_SetScreenPlacement(PLACE_LEFT, PLACE_TOP); + DC->fillRect( 0, 0, 640, lb + 1, col ); + UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); + } + } + + // Make menus pillarboxed if using 4:3 UI if ( ui_fixedAspect.integer == 1 ) { - if ( DC->glconfig.vidWidth * 480 > DC->glconfig.vidHeight * 640 ) { + if ( DC->glconfig.vidWidth * 480.0 > DC->glconfig.vidHeight * 640.0 ) { vec4_t col = {0, 0, 0, 1}; + float pillar = 0.5 * ( ( DC->glconfig.vidWidth - ( DC->xscale * 640.0 ) ) / DC->xscale ); + UI_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); - DC->drawRect( 0, 0, DC->xBias, 480, DC->xBias + 1, col ); - DC->drawRect( 640 + DC->xBias, 0, DC->xBias, 480, DC->xBias + 1, col ); + DC->fillRect( 0, 0, pillar + 1, 480, col ); + UI_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); + DC->fillRect( 640 - pillar, 0, pillar + 1, 480, col ); UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } } @@ -873,12 +890,29 @@ void Window_Paint( Window *w, float fadeAmount, float fadeClamp, float fadeCycle if ( w->flags & WINDOW_FORECOLORSET ) { DC->setColor( w->foreColor ); } - if ( ui_fixedAspect.integer == 2 && ( Q_stricmpn( w->name, "FLA", 3 ) ) && ( Q_stricmpn( w->name, "WOLF", 4 ) ) ) { // HACK to widen menu items - UI_SetScreenPlacement(PLACE_STRETCH, PLACE_STRETCH); - DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); - DC->setColor( NULL ); - } else { + if ( ui_fixedAspect.integer == 2 ) { + if ( DC->glconfig.vidWidth * 480 > DC->glconfig.vidHeight * 640 ) { + // HACK ... widen menu without stretching items and models + if ( !Q_stricmpn( w->name, "BLACKGRAD", 9 ) ) { + UI_SetScreenPlacement(PLACE_STRETCH, PLACE_STRETCH); + DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); + DC->setColor( NULL ); + } else if ( !Q_stricmpn( w->name, "gold_line", 9 ) ) { + UI_SetScreenPlacement(PLACE_STRETCH, PLACE_STRETCH); + DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); + DC->setColor( NULL ); + } else { + UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); + DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); + DC->setColor( NULL ); + } + } else { + UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); + DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); + DC->setColor( NULL ); + } UI_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); + } else { DC->drawHandlePic( fillRect.x, fillRect.y, fillRect.w, fillRect.h, w->background ); DC->setColor( NULL ); } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git _______________________________________________ Pkg-games-commits mailing list Pkg-games-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits