[iortcw] 451/497: All: Some more placement and visual fixes
Simon McVittie
smcv at debian.org
Fri Sep 8 10:37:50 UTC 2017
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 <M4N4T4RMS at 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
More information about the Pkg-games-commits
mailing list