diff --git a/Source/Client/Draw.c b/Source/Client/Draw.c index 17b54191..4bf8e93d 100755 --- a/Source/Client/Draw.c +++ b/Source/Client/Draw.c @@ -63,8 +63,8 @@ void CSQC_DrawChat( void ) { } for ( int i = 0; i < CHAT_LINES; i++ ) { - drawstring( vChatPos + '1 1', sMSGBuffer[ i ], '8 8 0', '0 0 0', VGUI_WINDOW_FGALPHA, 0 ); - drawstring( vChatPos, sMSGBuffer[ i ], '8 8 0', vHUDColor, 1, DRAWFLAG_ADDITIVE ); + drawstring( vChatPos + '1 1', sMSGBuffer[ i ], '8 8', '0 0 0', VGUI_WINDOW_FGALPHA, 0 ); + drawstring( vChatPos, sMSGBuffer[ i ], '8 8', vHUDColor, 1, DRAWFLAG_ADDITIVE ); vChatPos_y += 12; } } @@ -101,8 +101,8 @@ void CSQC_DrawCenterprint( void ) { vCenterPrintPos_y = ( vVideoResolution_y / 2 ) - ( fCenterPrintLines - 4 ); for ( int i = 0; i < ( fCenterPrintLines ); i++ ) { vCenterPrintPos_x = ( vVideoResolution_x / 2 ) - ( stringwidth( sCenterPrintBuffer[ i ], FALSE ) / 2 ); - drawstring( vCenterPrintPos + '1 1', sCenterPrintBuffer[ i ], '8 8 0', '0 0 0', fCenterPrintAlpha, 0 ); - drawstring( vCenterPrintPos, sCenterPrintBuffer[ i ], '8 8 0', vHUDColor, fCenterPrintAlpha, DRAWFLAG_ADDITIVE ); + drawstring( vCenterPrintPos + '1 1', sCenterPrintBuffer[ i ], '8 8', '0 0 0', fCenterPrintAlpha, 0 ); + drawstring( vCenterPrintPos, sCenterPrintBuffer[ i ], '8 8', vHUDColor, fCenterPrintAlpha, DRAWFLAG_ADDITIVE ); vCenterPrintPos_y += 8; } } diff --git a/Source/Client/HUD.c b/Source/Client/HUD.c index 20617d06..c952bd45 100755 --- a/Source/Client/HUD.c +++ b/Source/Client/HUD.c @@ -293,14 +293,14 @@ void HUD_DrawMoney( void ) { // If the alpha/color effect is active, draw the money twice in their varying alphas/colors if ( fMoneyAlphaEffect > 0 ) { fMoneyAlphaEffect -= frametime * 0.5; - drawsubpic( vMoneyPos, '18 25 0', HUD_NUMFILE_LAYER, [ NUMSIZE_X * 8, NUMSIZE_Y * 1], [ NUMSIZE_X * 0.75, NUMSIZE_Y ], vMoneyColorEffect, fMoneyAlphaEffect, DRAWFLAG_ADDITIVE ); - drawsubpic( vMoneyPos, '18 25 0', HUD_NUMFILE_LAYER, [ NUMSIZE_X * 8, NUMSIZE_Y * 1], [ NUMSIZE_X * 0.75, NUMSIZE_Y ], vHUDColor, HUD_ALPHA - ( fMoneyAlphaEffect * 0.5 ), DRAWFLAG_ADDITIVE ); + drawsubpic( vMoneyPos, '18 25', HUD_NUMFILE_LAYER, [ NUMSIZE_X * 8, NUMSIZE_Y * 1], [ NUMSIZE_X * 0.75, NUMSIZE_Y ], vMoneyColorEffect, fMoneyAlphaEffect, DRAWFLAG_ADDITIVE ); + drawsubpic( vMoneyPos, '18 25', HUD_NUMFILE_LAYER, [ NUMSIZE_X * 8, NUMSIZE_Y * 1], [ NUMSIZE_X * 0.75, NUMSIZE_Y ], vHUDColor, HUD_ALPHA - ( fMoneyAlphaEffect * 0.5 ), DRAWFLAG_ADDITIVE ); // Draw the +/- symbols depending on whether or not we made or lost money if ( fMoneyDifference < 0 ) { - drawsubpic( vMoneyPos + '0 -32 0', '18 23 0', HUD_NUMFILE_LAYER, [ 0.8671875, 0.09765625], [ 0.0703125, 0.08984375 ], vMoneyColorEffect, fMoneyAlphaEffect, DRAWFLAG_ADDITIVE ); + drawsubpic( vMoneyPos + '0 -32 0', '18 23', HUD_NUMFILE_LAYER, [ 0.8671875, 0.09765625], [ 0.0703125, 0.08984375 ], vMoneyColorEffect, fMoneyAlphaEffect, DRAWFLAG_ADDITIVE ); } else { - drawsubpic( vMoneyPos + '0 -32 0', '13 23 0', HUD_NUMFILE_LAYER, [ 0.8203125, 0.09765625], [ 0.05078125, 0.08984375 ], vMoneyColorEffect, fMoneyAlphaEffect, DRAWFLAG_ADDITIVE ); + drawsubpic( vMoneyPos + '0 -32 0', '13 23', HUD_NUMFILE_LAYER, [ 0.8203125, 0.09765625], [ 0.05078125, 0.08984375 ], vMoneyColorEffect, fMoneyAlphaEffect, DRAWFLAG_ADDITIVE ); } // Shift the numbers for reverse drawing @@ -348,13 +348,13 @@ void HUD_DrawAmmo( void ) { vector vAmmoMagPos = [ vVideoResolution_x - 142, vVideoResolution_y - 42 ]; HUD_DrawNums( getstatf( STAT_CURRENT_MAG ), vAmmoMagPos, fAmmoAlpha, vHUDColor ); - drawsubpic( [vVideoResolution_x - 118, vVideoResolution_y - 42], '3 25 0', HUD_NUMFILE_LAYER, [0.9375, 0], [ 0.01171875, 0.09765625 ], vHUDColor, fAmmoAlpha, DRAWFLAG_ADDITIVE ); + drawsubpic( [vVideoResolution_x - 118, vVideoResolution_y - 42], '3 25', HUD_NUMFILE_LAYER, [0.9375, 0], [ 0.01171875, 0.09765625 ], vHUDColor, fAmmoAlpha, DRAWFLAG_ADDITIVE ); vector vAmmoCalPos = [ vVideoResolution_x - 64, vVideoResolution_y - 42 ]; HUD_DrawNums( getstatf( STAT_CURRENT_CALIBER ), vAmmoCalPos, fAmmoAlpha, vHUDColor ); // Caliber icon - drawsubpic( vVideoResolution - '42 42 0', '24 24 0', HUD_NUMFILE_LAYER, vHUDCalPos[ wptTable[ getstatf( STAT_ACTIVEWEAPON ) ].iCaliber ], [ NUMSIZE_X, NUMSIZE_X ], vHUDColor, fAmmoAlpha, DRAWFLAG_ADDITIVE ); + drawsubpic( vVideoResolution - '42 42', '24 24', HUD_NUMFILE_LAYER, vHUDCalPos[ wptTable[ getstatf( STAT_ACTIVEWEAPON ) ].iCaliber ], [ NUMSIZE_X, NUMSIZE_X ], vHUDColor, fAmmoAlpha, DRAWFLAG_ADDITIVE ); fOldMag = getstatf( STAT_CURRENT_MAG ); fOldCal = getstatf( STAT_CURRENT_CALIBER ); } @@ -362,7 +362,6 @@ void HUD_DrawAmmo( void ) { void HUD_DrawProgressBar( void ) { vector vSize = '540 16'; vector vMainPos; - vector v1, v2, v3; if ( getstatf( STAT_PROGRESS ) > 0 ) { vMainPos_x = ( vVideoResolution_x / 2 ) - (vSize_x / 2); @@ -370,23 +369,15 @@ void HUD_DrawProgressBar( void ) { // Draw the background vector vBar = vSize; - vBar_x = 536 * getstatf( STAT_PROGRESS ); - vBar_y = 13; - drawfill( vMainPos + '1 1 0', vBar, vHUDColor, 1, DRAWFLAG_ADDITIVE ); - - // Draw the outline START - v1_x = vMainPos_x + vSize_x; - v1_y = vMainPos_y; - drawline( 1.0, vMainPos - '1 0 0', v1, vHUDColor, 1, DRAWFLAG_ADDITIVE ); - - v2_x = vMainPos_x; - v2_y = vMainPos_y + vSize_y; - drawline( 1.0, vMainPos, v2, vHUDColor, 1, DRAWFLAG_ADDITIVE ); + vBar_x = 538 * getstatf( STAT_PROGRESS ); + vBar_y = 14; + drawfill( vMainPos + '1 1', vBar, vHUDColor, 1, DRAWFLAG_ADDITIVE ); - v3 = vMainPos + vSize; - drawline( 1.0, v1, v3, vHUDColor, 1, DRAWFLAG_ADDITIVE ); - drawline( 1.0, v2, v3, vHUDColor, 1, DRAWFLAG_ADDITIVE ); - // Draw the outline END + drawfill( vMainPos, [vSize_x, 1], vHUDColor, 1.0f ); // Top + drawfill( [vMainPos_x, vMainPos_y + vSize_y], [vSize_x, 1], vHUDColor, 1.0f ); // Bottom + + drawfill( vMainPos, [1, vSize_y], vHUDColor, 1.0f ); // Left + drawfill( [vMainPos_x + vSize_x, vMainPos_y], [1, vSize_y + 1], vHUDColor, 1.0f ); // Right } } diff --git a/Source/Client/HUDOrbituaries.c b/Source/Client/HUDOrbituaries.c index 4629e60f..1a7b0dc4 100755 --- a/Source/Client/HUDOrbituaries.c +++ b/Source/Client/HUDOrbituaries.c @@ -102,15 +102,15 @@ void HUD_DrawOrbituaries( void ) { vOrbPos_x = vVideoResolution_x - ( orbBuffer[ i ].fOffset1 + orbBuffer[ i ].fOffset2 + orbBuffer[ i ].fOffset3 ) - 16; // Draw the attacker's name, shadow first - drawstring( vOrbPos + '1 1', orbBuffer[ i ].sAttacker, '8 8 0', '0 0 0', VGUI_WINDOW_FGALPHA, 0 ); - drawstring( vOrbPos, orbBuffer[ i ].sAttacker, '8 8 0', orbBuffer[ i ].vColor1, VGUI_WINDOW_FGALPHA, 0 ); + drawstring( vOrbPos + '1 1', orbBuffer[ i ].sAttacker, '8 8', '0 0 0', VGUI_WINDOW_FGALPHA, 0 ); + drawstring( vOrbPos, orbBuffer[ i ].sAttacker, '8 8', orbBuffer[ i ].vColor1, VGUI_WINDOW_FGALPHA, 0 ); // Draw the weapon icon drawsubpic( vOrbPos + [ orbBuffer[ i ].fOffset1, 0 ], wpIconTable[ orbBuffer[ i ].fWeapon ].vSize * 256, wpIconTable[ orbBuffer[ i ].fWeapon ].sSprite, wpIconTable[ orbBuffer[ i ].fWeapon ].vOrigin, wpIconTable[ orbBuffer[ i ].fWeapon ].vSize, '1 0.5 0', 1, DRAWFLAG_ADDITIVE ); // Draw the victim's name, shadow first again - drawstring( vOrbPos + [ orbBuffer[ i ].fOffset2 + orbBuffer[ i ].fOffset1, 0 ] + '1 1', orbBuffer[ i ].sVictim, '8 8 0', '0 0', VGUI_WINDOW_FGALPHA, 0 ); - drawstring( vOrbPos + [ orbBuffer[ i ].fOffset2 + orbBuffer[ i ].fOffset1, 0 ], orbBuffer[ i ].sVictim, '8 8 0', orbBuffer[ i ].vColor2, VGUI_WINDOW_FGALPHA, 0 ); + drawstring( vOrbPos + [ orbBuffer[ i ].fOffset2 + orbBuffer[ i ].fOffset1, 0 ] + '1 1', orbBuffer[ i ].sVictim, '8 8', '0 0', VGUI_WINDOW_FGALPHA, 0 ); + drawstring( vOrbPos + [ orbBuffer[ i ].fOffset2 + orbBuffer[ i ].fOffset1, 0 ], orbBuffer[ i ].sVictim, '8 8', orbBuffer[ i ].vColor2, VGUI_WINDOW_FGALPHA, 0 ); vOrbPos_y += 18; } } diff --git a/Source/Client/VGUIBuyMenu.c b/Source/Client/VGUIBuyMenu.c index a0da2022..10404ea6 100755 --- a/Source/Client/VGUIBuyMenu.c +++ b/Source/Client/VGUIBuyMenu.c @@ -144,9 +144,9 @@ void VGUI_BuyMenu_WeaponButton( float fWeapon ) { if ( wptTable[ fWeapon ].iPrice <= getstatf( STAT_MONEY ) ) { if ( VGUI_Button( vguiWeaponTable[ fWeapon ].sName, VGUI_BuyMenu_BuyWeapon, vVGUIButtonPos, '264 24 0' ) == TRUE ) { drawpic( vVGUIWindowPos + '328 116', vguiWeaponTable[ fWeapon ].sImage, '256 64', '1 1 1', 1 ); - VGUI_Text( sprintf( _("BUY_PRICETAG"), wptTable[ fWeapon ].iPrice ), vVGUIWindowPos + '328 250', '8 8 0', FONT_DEFAULT ); - VGUI_Text( sprintf( _("BUY_CALIBER"), wptTable[ fWeapon ].iCaliber ), vVGUIWindowPos + '328 260', '8 8 0', FONT_DEFAULT ); - VGUI_Text( sprintf( _("BUY_RPM"), ( wptTable[ fWeapon ].fAttackFinished) * 3600 ), vVGUIWindowPos + '328 270', '8 8 0', FONT_DEFAULT ); + VGUI_Text( sprintf( _("BUY_PRICETAG"), wptTable[ fWeapon ].iPrice ), vVGUIWindowPos + '328 250', '8 8', FONT_DEFAULT ); + VGUI_Text( sprintf( _("BUY_CALIBER"), wptTable[ fWeapon ].iCaliber ), vVGUIWindowPos + '328 260', '8 8', FONT_DEFAULT ); + VGUI_Text( sprintf( _("BUY_RPM"), ( wptTable[ fWeapon ].fAttackFinished) * 3600 ), vVGUIWindowPos + '328 270', '8 8', FONT_DEFAULT ); } } else { VGUI_FakeButton( vguiWeaponTable[ fWeapon ].sName, vVGUIButtonPos, '264 24 0' ); @@ -168,7 +168,7 @@ void VGUI_BuyMenu_EquipmentButton( float fID ) { if ( eqptTable[ fID ].iPrice <= getstatf( STAT_MONEY ) ) { if ( VGUI_Button( vguiEquipmentTable[ fID ].sName, VGUI_BuyMenu_BuyEquipment, vVGUIButtonPos, '180 24 0' ) == TRUE ) { drawpic( vVGUIWindowPos + '290 116', vguiEquipmentTable[ fID ].sImage, '256 64', '1 1 1', 1 ); - VGUI_Text( sprintf( _("BUY_PRICETAG"), eqptTable[ fID ].iPrice ) , vVGUIWindowPos + '256 250', '8 8 0', FONT_DEFAULT ); + VGUI_Text( sprintf( _("BUY_PRICETAG"), eqptTable[ fID ].iPrice ) , vVGUIWindowPos + '256 250', '8 8', FONT_DEFAULT ); } } else { VGUI_FakeButton( vguiEquipmentTable[ fID ].sName, vVGUIButtonPos, '180 24 0' ); diff --git a/Source/Client/VGUIMOTD.c b/Source/Client/VGUIMOTD.c index 11777f51..60405d41 100755 --- a/Source/Client/VGUIMOTD.c +++ b/Source/Client/VGUIMOTD.c @@ -25,12 +25,12 @@ void VGUI_MessageOfTheDay( vector vPos ) { fVGUI_Display = VGUI_TEAMSELECT; } - VGUI_Text( serverkey( "hostname" ), vPos + '16 64 0', '16 16 0', FONT_16 ); + VGUI_Text( serverkey( "hostname" ), vPos + '16 64 0', '16 16', FONT_16 ); vector vTextPos = vPos + '16 116 0'; for ( int i = 0; i < 25; i++ ) { - VGUI_Text( sMOTDString[ i ], vTextPos, '8 8 0', FONT_DEFAULT ); + VGUI_Text( sMOTDString[ i ], vTextPos, '8 8', FONT_DEFAULT ); vTextPos_y += 10; } diff --git a/Source/Client/VGUIObjects.c b/Source/Client/VGUIObjects.c index a92414d8..5dded12c 100755 --- a/Source/Client/VGUIObjects.c +++ b/Source/Client/VGUIObjects.c @@ -52,116 +52,79 @@ float VGUI_CheckMouse( vector vPos, vector vReg ) { } // Draws window with outline, border and title -void VGUI_Window( string sTitle, vector vPos, vector vSize ) { - vector v1, v2, v3; - +void VGUI_Window( string sTitle, vector vPosition, vector vSize ) { // Draw the background - drawfill( vPos, vSize, VGUI_WINDOW_BGCOLOR, VGUI_WINDOW_BGALPHA ); + drawfill( vPosition, vSize, VGUI_WINDOW_BGCOLOR, VGUI_WINDOW_BGALPHA ); - // Draw the outline START - v1_x = vPos_x + vSize_x; - v1_y = vPos_y + 1; - drawline( 1.0, vPos, v1, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - - v2_x = vPos_x; - v2_y = vPos_y + vSize_y; - drawline( 1.0, vPos, v2, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - - v3 = vPos + vSize; - drawline( 1.0, v1 - '1 0', v3 - '1 0', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - drawline( 1.0, v2, v3, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - // Draw the outline END + // Sides + drawfill( vPosition, [vSize_x, 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( [vPosition_x, vPosition_y + vSize_y - 1], [vSize_x, 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( vPosition, [1, vSize_y], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( [vPosition_x + vSize_x - 1, vPosition_y], [1, vSize_y], vVGUIColor, VGUI_WINDOW_FGALPHA ); // Draw the window title - CSQC_DrawText( vPos + '16 16 0', sTitle, '16 16 0', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE, FONT_16 ); - drawline( 1.0, vPos + '0 48 0', v1 + '0 48 0', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); + CSQC_DrawText( vPosition + '16 16', sTitle, '16 16', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE, FONT_DEFAULT ); + drawfill( vPosition + '0 48', [vSize_x, 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); } // Draws window with outline, border and title -void VGUI_WindowSmall( string sTitle, vector vPos, vector vSize ) { - vector v1, v2, v3; - +void VGUI_WindowSmall( string sTitle, vector vPosition, vector vSize ) { // Draw the background - drawfill( vPos, vSize, VGUI_WINDOW_BGCOLOR, VGUI_WINDOW_BGALPHA ); + drawfill( vPosition, vSize, VGUI_WINDOW_BGCOLOR, VGUI_WINDOW_BGALPHA ); - // Draw the outline START - v1_x = vPos_x + vSize_x; - v1_y = vPos_y + 1; - drawline( 1.0, vPos, v1, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - - v2_x = vPos_x; - v2_y = vPos_y + vSize_y; - drawline( 1.0, vPos, v2, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - - v3 = vPos + vSize; - drawline( 1.0, v1 - '1 0', v3 - '1 0', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - drawline( 1.0, v2, v3, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - // Draw the outline END + // Sides + drawfill( vPosition, [vSize_x, 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( [vPosition_x, vPosition_y + vSize_y - 1], [vSize_x, 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( vPosition, [1, vSize_y], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( [vPosition_x + vSize_x - 1, vPosition_y], [1, vSize_y], vVGUIColor, VGUI_WINDOW_FGALPHA ); // Draw the window title - CSQC_DrawText( vPos + '8 8 0', sTitle, '8 8 0', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE, FONT_16 ); - drawline( 1.0, vPos + '0 24 0', v1 + '0 24 0', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); + CSQC_DrawText( vPosition + '8 8', sTitle, '8 8', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE, FONT_DEFAULT ); + drawfill( vPosition + '0 24', [vSize_x, 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); } // Draws a button, returns whether or not a mouse is hovering over it (for inheritance' sake) -float VGUI_Button( string sLabel, void() vFunction, vector vPos, vector vSize ) { - vector v1, v2, v3, v4; +float VGUI_Button( string sLabel, void() vFunction, vector vPosition, vector vSize ) { + vector vLabelPos; - // Draw the outline START - v1_x = vPos_x + vSize_x; - v1_y = vPos_y + 1; - drawline( 1.0, vPos, v1, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - - v2_x = vPos_x; - v2_y = vPos_y + vSize_y; - drawline( 1.0, vPos, v2, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - - v3 = vPos + vSize; - drawline( 1.0, v1 - '1 0', v3 - '1 0', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - drawline( 1.0, v2, v3, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - // Draw the outline END + drawfill( vPosition, [vSize_x, 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( [vPosition_x, vPosition_y + vSize_y - 1], [vSize_x, 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( vPosition, [1, vSize_y], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( [vPosition_x + vSize_x - 1, vPosition_y], [1, vSize_y], vVGUIColor, VGUI_WINDOW_FGALPHA ); // Draw the button label - v4_x = vPos_x + 16; - v4_y = vPos_y + ( ( vSize_y / 2 ) - 4 ); + vLabelPos_x = vPosition_x + 16; + vLabelPos_y = vPosition_y + ( ( vSize_y / 2 ) - 4 ); - if( VGUI_CheckMouse( vPos, vSize ) ) { + if( VGUI_CheckMouse( vPosition, vSize ) ) { if ( fMouseClick == TRUE ) { vFunction(); fMouseClick = FALSE; } - CSQC_DrawText( v4, sLabel, '8 8 0', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE, FONT_DEFAULT ); - drawline( 1.0, v4 + '0 10 0', v4 + '0 10 0' + [ (strlen( sLabel ) * 8 ), 0 ], vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); + CSQC_DrawText( vLabelPos, sLabel, '8 8', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE, FONT_DEFAULT ); + drawfill( vLabelPos + '0 10 0', [(strlen( sLabel ) * 8 ), 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); return TRUE; } else { - CSQC_DrawText( v4, sLabel, '8 8 0', vVGUIColor * 0.8, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE, FONT_DEFAULT ); + CSQC_DrawText( vLabelPos, sLabel, '8 8', vVGUIColor * 0.8, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE, FONT_DEFAULT ); } return FALSE; } -void VGUI_FakeButton( string sLabel, vector vPos, vector vSize ) { - vector v1, v2, v3, v4; +void VGUI_FakeButton( string sLabel, vector vPosition, vector vSize ) { + vector vLabelPos; - // Draw the outline START - v1_x = vPos_x + vSize_x; - v1_y = vPos_y + 1; - drawline( 1.0, vPos, v1, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - - v2_x = vPos_x; - v2_y = vPos_y + vSize_y; - drawline( 1.0, vPos, v2, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - - v3 = vPos + vSize; - drawline( 1.0, v1 - '1 0', v3 - '1 0', vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - drawline( 1.0, v2, v3, vVGUIColor, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE ); - // Draw the outline END + drawfill( vPosition, [vSize_x, 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( [vPosition_x, vPosition_y + vSize_y - 1], [vSize_x, 1], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( vPosition, [1, vSize_y], vVGUIColor, VGUI_WINDOW_FGALPHA ); + drawfill( [vPosition_x + vSize_x - 1, vPosition_y], [1, vSize_y], vVGUIColor, VGUI_WINDOW_FGALPHA ); // Draw the button label - v4_x = vPos_x + 16; - v4_y = vPos_y + ( ( vSize_y / 2 ) - 4 ); - CSQC_DrawText( v4, sLabel, '8 8 0', vVGUIColor * 0.5, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE, FONT_DEFAULT ); + vLabelPos_x = vPosition_x + 16; + vLabelPos_y = vPosition_y + ( ( vSize_y / 2 ) - 4 ); + + CSQC_DrawText( vLabelPos, sLabel, '8 8', vVGUIColor * 0.5, VGUI_WINDOW_FGALPHA, DRAWFLAG_ADDITIVE, FONT_DEFAULT ); } // Wrapper for simple VGUI Text labels diff --git a/Source/Client/VGUIRadio.c b/Source/Client/VGUIRadio.c index 3f459aae..fcdc4b79 100755 --- a/Source/Client/VGUIRadio.c +++ b/Source/Client/VGUIRadio.c @@ -57,7 +57,7 @@ float fRadioResponses[ VGUIRADIO_RESPONSES ] = { }; void VGUI_Radio_DrawCommand( float fIndex, float fMessage, vector vPos ) { - VGUI_Text( sprintf( "%d) %s", fIndex + 1, sRadioChat[ fMessage ] ), vPos, '8 8 0', FONT_DEFAULT ); + VGUI_Text( sprintf( "%d) %s", fIndex + 1, sRadioChat[ fMessage ] ), vPos, '8 8', FONT_DEFAULT ); if ( fInputKeyCode == ( fIndex + 49 ) ) { sendevent( "RadioMessage", "f", fMessage ); @@ -110,7 +110,7 @@ void VGUI_Radio_Draw( void ) { } vPos_y += 20; - VGUI_Text( sprintf( "0) %s", _("VGUI_BACK") ), vPos, '8 8 0', FONT_DEFAULT ); + VGUI_Text( sprintf( "0) %s", _("VGUI_BACK") ), vPos, '8 8', FONT_DEFAULT ); if ( fInputKeyCode == 48 ) { fVGUI_Display = VGUI_NONE; diff --git a/Source/Client/VGUIScoreboard.c b/Source/Client/VGUIScoreboard.c index 5daa740b..0d246071 100755 --- a/Source/Client/VGUIScoreboard.c +++ b/Source/Client/VGUIScoreboard.c @@ -52,25 +52,25 @@ vector VGUI_Scores_DrawTeam( vector vPos, float fTeam ) { } if ( getplayerkeyvalue( i, "*dead" ) == "1" ) { - CSQC_DrawText( vNewPos + '38 0', sprintf( _("SCORE_DEAD"), getplayerkeyvalue( i, "name" ) ), '8 8 0', vColor, 1, 0, FONT_DEFAULT ); + CSQC_DrawText( vNewPos + '38 0', sprintf( _("SCORE_DEAD"), getplayerkeyvalue( i, "name" ) ), '8 8', vColor, 1, 0, FONT_DEFAULT ); } else if ( getplayerkeyvalue( i, "*dead" ) == "2" ) { - CSQC_DrawText( vNewPos + '38 0', sprintf( _("SCORE_VIP"), getplayerkeyvalue( i, "name" ) ), '8 8 0', vColor, 1, 0, FONT_DEFAULT ); + CSQC_DrawText( vNewPos + '38 0', sprintf( _("SCORE_VIP"), getplayerkeyvalue( i, "name" ) ), '8 8', vColor, 1, 0, FONT_DEFAULT ); } else { - CSQC_DrawText( vNewPos + '38 0', getplayerkeyvalue( i, "name" ), '8 8 0', vColor, 1, 0, FONT_DEFAULT ); + CSQC_DrawText( vNewPos + '38 0', getplayerkeyvalue( i, "name" ), '8 8', vColor, 1, 0, FONT_DEFAULT ); } // Spectators don't have stats worth caring about if ( fTeam != TEAM_SPECTATOR ) { - VGUI_RightText( vNewPos + '320 0', getplayerkeyvalue( i, INFOKEY_P_FRAGS ), '8 8 0', vColor, FONT_DEFAULT ); - VGUI_RightText( vNewPos + '384 0', getplayerkeyvalue( i, "*deaths" ), '8 8 0', vColor, FONT_DEFAULT ); + VGUI_RightText( vNewPos + '320 0', getplayerkeyvalue( i, INFOKEY_P_FRAGS ), '8 8', vColor, FONT_DEFAULT ); + VGUI_RightText( vNewPos + '384 0', getplayerkeyvalue( i, "*deaths" ), '8 8', vColor, FONT_DEFAULT ); } - VGUI_RightText( vNewPos + '456 0', getplayerkeyvalue( i, INFOKEY_P_PING ), '8 8 0', vColor, FONT_DEFAULT ); + VGUI_RightText( vNewPos + '456 0', getplayerkeyvalue( i, INFOKEY_P_PING ), '8 8', vColor, FONT_DEFAULT ); if ( getplayerkeyvalue( i, INFOKEY_P_VOIPSPEAKING ) == "0" ) { - VGUI_RightText( vNewPos + '508 0', "N", '8 8 0', '1 1 1', FONT_DEFAULT ); + VGUI_RightText( vNewPos + '508 0', "N", '8 8', '1 1 1', FONT_DEFAULT ); } else { - VGUI_RightText( vNewPos + '508 0', "Y", '8 8 0', '1 1 1', FONT_DEFAULT ); + VGUI_RightText( vNewPos + '508 0', "Y", '8 8', '1 1 1', FONT_DEFAULT ); } vNewPos += '0 14'; @@ -85,27 +85,26 @@ vector VGUI_Scores_DrawTeam( vector vPos, float fTeam ) { // If we've got no spectators, don't draw them. if ( ( fTeam != TEAM_SPECTATOR ) || ( fTeam == TEAM_SPECTATOR && iPlayerCount > 0 ) ) { // The name/title of the team - CSQC_DrawText( vPos + '24 0', sScoreTeams[ fTeam ], '16 16 0', vColor, 1, 0, FONT_16 ); + CSQC_DrawText( vPos + '24 0', sScoreTeams[ fTeam ], '16 16', vColor, 1, 0, FONT_16 ); drawline( 1.0, vPos + '19 24', vPos + '512 24 0', vColor, 1, 0 ); // Draw the amount of rounds we've von if ( fTeam == TEAM_CT ) { - VGUI_RightText( vPos + '320 0', sprintf( "%i", getstati( STAT_WON_CT ) ), '16 16 0', vColor, FONT_16 ); + VGUI_RightText( vPos + '320 0', sprintf( "%i", getstati( STAT_WON_CT ) ), '16 16', vColor, FONT_16 ); } else if ( fTeam == TEAM_T ) { - VGUI_RightText( vPos + '320 0', sprintf( "%i", getstati( STAT_WON_T ) ), '16 16 0', vColor, FONT_16 ); + VGUI_RightText( vPos + '320 0', sprintf( "%i", getstati( STAT_WON_T ) ), '16 16', vColor, FONT_16 ); } // Now we know the playercount, so let's calculate the position next to the Teamname String and print it vector vCountPos = vPos + '24 6'; - vCountPos_x += stringwidth( sScoreTeams[ fTeam ], FALSE, '16 16 0' ) + 8; - CSQC_DrawText( vCountPos, sprintf( _("SCORE_PLAYERS"), iPlayerCount ), '8 8 0', vColor, 1, 0, FONT_DEFAULT ); + vCountPos_x += stringwidth( sScoreTeams[ fTeam ], FALSE, '16 16' ) + 8; + CSQC_DrawText( vCountPos, sprintf( _("SCORE_PLAYERS"), iPlayerCount ), '8 8', vColor, 1, 0, FONT_DEFAULT ); } return vNewPos + '0 24'; } void VGUI_Scores_Show( void ) { vector vMainPos; - vector v1, v2, v3; vector vSize; vSize_x = 540; @@ -117,28 +116,20 @@ void VGUI_Scores_Show( void ) { // Draw the background drawfill( vMainPos, vSize, VGUI_WINDOW_BGCOLOR, VGUI_WINDOW_BGALPHA ); - // Draw the outline START - v1_x = vMainPos_x + vSize_x; - v1_y = vMainPos_y + 1; - drawline( 1.0, vMainPos, v1, '0.35 0.35 0.35', 1, DRAWFLAG_NORMAL ); - - v2_x = vMainPos_x; - v2_y = vMainPos_y + vSize_y; - drawline( 1.0, vMainPos, v2, '0.35 0.35 0.35', 1, DRAWFLAG_NORMAL ); - - v3 = vMainPos + vSize; - drawline( 1.0, v1 - '1 0', v3 - '1 0', '0.35 0.35 0.35', 1, DRAWFLAG_NORMAL ); - drawline( 1.0, v2, v3, '0.35 0.35 0.35', 1, DRAWFLAG_NORMAL ); - // Draw the outline END + // Sides + drawfill( vMainPos, [vSize_x, 1], '0.35 0.35 0.35', 1.0f ); + drawfill( [vMainPos_x, vMainPos_y + vSize_y - 1], [vSize_x, 1], '0.35 0.35 0.35', 1.0f ); + drawfill( vMainPos, [1, vSize_y], '0.35 0.35 0.35', 1.0f ); + drawfill( [vMainPos_x + vSize_x - 1, vMainPos_y], [1, vSize_y], '0.35 0.35 0.35', 1.0f ); // Server title - CSQC_DrawText( vMainPos + '24 13', serverkey( "hostname" ), '16 16 0', VGUI_WINDOW_FGCOLOR, 1, 0, FONT_16 ); + CSQC_DrawText( vMainPos + '24 13', serverkey( "hostname" ), '16 16', VGUI_WINDOW_FGCOLOR, 1, 0, FONT_16 ); // Tabs like Score, Ping etc. - CSQC_DrawText( vMainPos + '280 32', _("SCORE_SCORE"), '8 8 0', VGUI_WINDOW_FGCOLOR, 1, 0, FONT_DEFAULT ); - CSQC_DrawText( vMainPos + '336 32', _("SCORE_DEATHS"), '8 8 0', VGUI_WINDOW_FGCOLOR, 1, 0, FONT_DEFAULT ); - CSQC_DrawText( vMainPos + '400 32', _("SCORE_LATENCY"), '8 8 0', VGUI_WINDOW_FGCOLOR, 1, 0, FONT_DEFAULT ); - CSQC_DrawText( vMainPos + '472 32', _("SCORE_VOICE"), '8 8 0', VGUI_WINDOW_FGCOLOR, 1, 0, FONT_DEFAULT ); + CSQC_DrawText( vMainPos + '280 32', _("SCORE_SCORE"), '8 8', VGUI_WINDOW_FGCOLOR, 1, 0, FONT_DEFAULT ); + CSQC_DrawText( vMainPos + '336 32', _("SCORE_DEATHS"), '8 8', VGUI_WINDOW_FGCOLOR, 1, 0, FONT_DEFAULT ); + CSQC_DrawText( vMainPos + '400 32', _("SCORE_LATENCY"), '8 8', VGUI_WINDOW_FGCOLOR, 1, 0, FONT_DEFAULT ); + CSQC_DrawText( vMainPos + '472 32', _("SCORE_VOICE"), '8 8', VGUI_WINDOW_FGCOLOR, 1, 0, FONT_DEFAULT ); vector vOffset = VGUI_Scores_DrawTeam( vMainPos + '0 50', TEAM_CT ); vOffset = VGUI_Scores_DrawTeam( vOffset, TEAM_T ); diff --git a/Source/Client/VGUISpectator.c b/Source/Client/VGUISpectator.c index 8196c7ed..20768b80 100755 --- a/Source/Client/VGUISpectator.c +++ b/Source/Client/VGUISpectator.c @@ -47,16 +47,16 @@ void VGUI_DrawSpectatorHUD( void ) { } drawpic( [ vVideoResolution_x - 70, 20 ], "gfx/vgui/640_timer", '14 14', '1 1 1', 1 ); - VGUI_RightText( [ vVideoResolution_x - 16, 23 ], sprintf( "%i:%i%i", iMinutes, iTens, iUnits ), '8 8 0', '0.56 0.56 0.21', FONT_DEFAULT ); + VGUI_RightText( [ vVideoResolution_x - 16, 23 ], sprintf( "%i:%i%i", iMinutes, iTens, iUnits ), '8 8', '0.56 0.56 0.21', FONT_DEFAULT ); // Draw the money - CSQC_DrawText( [ vVideoResolution_x - 67, 6 ], "$", '8 8 0', '0.56 0.56 0.21', 1, 0, FONT_DEFAULT ); - VGUI_RightText( [ vVideoResolution_x - 16, 6 ], sprintf( "%d", getstatf( STAT_MONEY ) ), '8 8 0', '0.56 0.56 0.21', FONT_DEFAULT ); + CSQC_DrawText( [ vVideoResolution_x - 67, 6 ], "$", '8 8', '0.56 0.56 0.21', 1, 0, FONT_DEFAULT ); + VGUI_RightText( [ vVideoResolution_x - 16, 6 ], sprintf( "%d", getstatf( STAT_MONEY ) ), '8 8', '0.56 0.56 0.21', FONT_DEFAULT ); // Seperator drawfill( [ vVideoResolution_x - 85, 6 ], [ 2, 28 ], '0.56 0.56 0.21', 1 ); // Team Stats - VGUI_RightText( [ vVideoResolution_x - 96, 6 ], sprintf( _("VGUI_SPEC_TCOUNTER"), getstatf( STAT_WON_T ) ), '8 8 0', '0.56 0.56 0.21', FONT_DEFAULT ); - VGUI_RightText( [ vVideoResolution_x - 96, 23 ], sprintf( _("VGUI_SPEC_CTCOUNTER"), getstatf( STAT_WON_CT ) ), '8 8 0', '0.56 0.56 0.21', FONT_DEFAULT ); + VGUI_RightText( [ vVideoResolution_x - 96, 6 ], sprintf( _("VGUI_SPEC_TCOUNTER"), getstatf( STAT_WON_T ) ), '8 8', '0.56 0.56 0.21', FONT_DEFAULT ); + VGUI_RightText( [ vVideoResolution_x - 96, 23 ], sprintf( _("VGUI_SPEC_CTCOUNTER"), getstatf( STAT_WON_CT ) ), '8 8', '0.56 0.56 0.21', FONT_DEFAULT ); } diff --git a/Source/Client/VGUITeamSelect.c b/Source/Client/VGUITeamSelect.c index 46b4a4b9..3b78ed35 100755 --- a/Source/Client/VGUITeamSelect.c +++ b/Source/Client/VGUITeamSelect.c @@ -119,11 +119,11 @@ void VGUI_TeamSelect_Main( vector vPos ) { fVGUI_Display = VGUI_NONE; } - VGUI_Text( sMapString[ 0 ], vPos + '16 64 0', '16 16 0', FONT_16); + VGUI_Text( sMapString[ 0 ], vPos + '16 64 0', '16 16', FONT_16); vector vTextPos = vPos + '224 116 0'; for ( int i = 1; i < 35; i++ ) { - VGUI_Text( sMapString[ i ], vTextPos, '8 8 0', FONT_DEFAULT ); + VGUI_Text( sMapString[ i ], vTextPos, '8 8', FONT_DEFAULT ); vTextPos_y += 10; } @@ -144,12 +144,12 @@ void VGUI_TeamSelect_Button( float fNumber, void() vFunc, vector vPos, vector vS if( VGUI_Button( sClassInfo[ 8 * fNumber ] , vFunc, vPos, vSize ) == TRUE ) { drawpic( vVGUIWindowPos + '356 64', sClassInfo[ 8 * fNumber + 1 ], '128 256', '1 1 1', 1 ); - VGUI_Text( sClassInfo[ 8 * fNumber + 2 ], vVGUIWindowPos + '232 336', '8 8 0', FONT_DEFAULT ); - VGUI_Text( sClassInfo[ 8 * fNumber + 3 ], vVGUIWindowPos + '232 346', '8 8 0', FONT_DEFAULT ); - VGUI_Text( sClassInfo[ 8 * fNumber + 4 ], vVGUIWindowPos + '232 356', '8 8 0', FONT_DEFAULT ); - VGUI_Text( sClassInfo[ 8 * fNumber + 5 ], vVGUIWindowPos + '232 366', '8 8 0', FONT_DEFAULT ); - VGUI_Text( sClassInfo[ 8 * fNumber + 6 ], vVGUIWindowPos + '232 376', '8 8 0', FONT_DEFAULT ); - VGUI_Text( sClassInfo[ 8 * fNumber + 7 ], vVGUIWindowPos + '232 386', '8 8 0', FONT_DEFAULT ); + VGUI_Text( sClassInfo[ 8 * fNumber + 2 ], vVGUIWindowPos + '232 336', '8 8', FONT_DEFAULT ); + VGUI_Text( sClassInfo[ 8 * fNumber + 3 ], vVGUIWindowPos + '232 346', '8 8', FONT_DEFAULT ); + VGUI_Text( sClassInfo[ 8 * fNumber + 4 ], vVGUIWindowPos + '232 356', '8 8', FONT_DEFAULT ); + VGUI_Text( sClassInfo[ 8 * fNumber + 5 ], vVGUIWindowPos + '232 366', '8 8', FONT_DEFAULT ); + VGUI_Text( sClassInfo[ 8 * fNumber + 6 ], vVGUIWindowPos + '232 376', '8 8', FONT_DEFAULT ); + VGUI_Text( sClassInfo[ 8 * fNumber + 7 ], vVGUIWindowPos + '232 386', '8 8', FONT_DEFAULT ); } } diff --git a/Source/FreeCS-CE.prj b/Source/FreeCS-CE.prj index dee2508c..21b6a58b 100755 --- a/Source/FreeCS-CE.prj +++ b/Source/FreeCS-CE.prj @@ -59,7 +59,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -112,7 +112,7 @@ - - + + diff --git a/Source/Menu/Objects.c b/Source/Menu/Objects.c index 4830776e..9b27b9c7 100755 --- a/Source/Menu/Objects.c +++ b/Source/Menu/Objects.c @@ -144,10 +144,10 @@ void Object_Frame( vector vPosition, vector vSize ) { drawfill( vPosition, vSize, '0 0 0', 1.0f ); drawfill( vPosition, [vSize_x, 1], autocvar_menu_fgcolor, 1.0f ); // Top - drawfill( [vPosition_x, vPosition_y + vSize_y], [vSize_x, 1], autocvar_menu_fgcolor, 1.0f ); // Bottom + drawfill( [vPosition_x, vPosition_y + vSize_y - 1], [vSize_x, 1], autocvar_menu_fgcolor, 1.0f ); // Bottom drawfill( vPosition, [1, vSize_y], autocvar_menu_fgcolor, 1.0f ); // Left - drawfill( [vPosition_x + vSize_x, vPosition_y], [1, vSize_y + 1], autocvar_menu_fgcolor, 1.0f ); // Right + drawfill( [vPosition_x + vSize_x - 1, vPosition_y], [1, vSize_y], autocvar_menu_fgcolor, 1.0f ); // Right } /* diff --git a/Source/Shared/Animations.c b/Source/Shared/Animations.c index 509d0912..00b9d944 100755 --- a/Source/Shared/Animations.c +++ b/Source/Shared/Animations.c @@ -264,8 +264,17 @@ void Animation_PlayerUpdate( void ) { } #ifdef CSQC - setorigin( self.eGunModel, self.origin ); - self.eGunModel.angles = self.angles; + // Fix the angle (this is REALLY expensive, probably. But how else would one do it without skeletal objects?) + vector v1, v2; + self.eGunModel.angles = self.angles; // Set it to something consistent + gettaginfo( self, self.fWeaponBoneID ); // Updates the v_ globals for the player hand bone angle + v1 = vectoangles( v_right, v_up ); // Create angles from the v_ matrix + gettaginfo( self.eGunModel, self.eGunModel.fWeaponBoneID ); // Updates the v_ globals for the weapon hand bone angle + v2 = vectoangles( v_right, v_up ); + self.eGunModel.angles = self.angles + ( v1 - v2 ); // The difference is applied + + // Fix the origin + setorigin( self.eGunModel, self.origin ); // Set it to something consistent vector vOffset = gettaginfo( self.eGunModel, self.eGunModel.fWeaponBoneID ) - gettaginfo( self, self.fWeaponBoneID ); setorigin( self.eGunModel, self.origin - vOffset ); #endif diff --git a/freecs/csprogs.dat b/freecs/csprogs.dat index 74e51bf5..b1f08bda 100644 Binary files a/freecs/csprogs.dat and b/freecs/csprogs.dat differ diff --git a/freecs/menu.dat b/freecs/menu.dat index b28b52b8..4df67af7 100755 Binary files a/freecs/menu.dat and b/freecs/menu.dat differ diff --git a/freecs/progs.dat b/freecs/progs.dat index 463cf1e5..ae6caea8 100644 Binary files a/freecs/progs.dat and b/freecs/progs.dat differ