mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 14:16:50 +00:00
parent
f63849bb34
commit
e26b40d889
@ -819,10 +819,13 @@ void CVideoMode_Common::SetupStartupGraphic()
|
|||||||
|
|
||||||
// loading.vtf
|
// loading.vtf
|
||||||
buf.Clear(); // added this Clear() because we saw cases where LoadVTF was not emptying the buf fully in the above section
|
buf.Clear(); // added this Clear() because we saw cases where LoadVTF was not emptying the buf fully in the above section
|
||||||
m_pLoadingTexture = LoadVTF( buf, "materials/console/startup_loading.vtf" );
|
const char* loading = "materials/console/startup_loading.vtf";
|
||||||
|
if ( IsSteamDeck() )
|
||||||
|
loading = "materials/gamepadui/game_logo.vtf";
|
||||||
|
m_pLoadingTexture = LoadVTF( buf, loading );
|
||||||
if ( !m_pLoadingTexture )
|
if ( !m_pLoadingTexture )
|
||||||
{
|
{
|
||||||
Error( "Can't find background image materials/console/startup_loading.vtf\n" );
|
Error( "Can't find background image '%s'\n", loading );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -883,8 +886,12 @@ void CVideoMode_Common::DrawStartupGraphic()
|
|||||||
pVMTKeyValues->SetInt( "$nocull", 1 );
|
pVMTKeyValues->SetInt( "$nocull", 1 );
|
||||||
IMaterial *pMaterial = g_pMaterialSystem->CreateMaterial( "__background", pVMTKeyValues );
|
IMaterial *pMaterial = g_pMaterialSystem->CreateMaterial( "__background", pVMTKeyValues );
|
||||||
|
|
||||||
|
const char* loading = "console/startup_loading.vtf";
|
||||||
|
if ( IsSteamDeck() )
|
||||||
|
loading = "gamepadui/game_logo.vtf";
|
||||||
|
|
||||||
pVMTKeyValues = new KeyValues( "UnlitGeneric" );
|
pVMTKeyValues = new KeyValues( "UnlitGeneric" );
|
||||||
pVMTKeyValues->SetString( "$basetexture", "Console/startup_loading.vtf" );
|
pVMTKeyValues->SetString( "$basetexture", loading );
|
||||||
pVMTKeyValues->SetInt( "$translucent", 1 );
|
pVMTKeyValues->SetInt( "$translucent", 1 );
|
||||||
pVMTKeyValues->SetInt( "$ignorez", 1 );
|
pVMTKeyValues->SetInt( "$ignorez", 1 );
|
||||||
pVMTKeyValues->SetInt( "$nofog", 1 );
|
pVMTKeyValues->SetInt( "$nofog", 1 );
|
||||||
@ -922,6 +929,10 @@ void CVideoMode_Common::DrawStartupGraphic()
|
|||||||
slide = 0;
|
slide = 0;
|
||||||
|
|
||||||
DrawScreenSpaceRectangle( pMaterial, 0, 0+slide, w, h-50, 0, 0, tw-1, th-1, tw, th, NULL,1,1,depth );
|
DrawScreenSpaceRectangle( pMaterial, 0, 0+slide, w, h-50, 0, 0, tw-1, th-1, tw, th, NULL,1,1,depth );
|
||||||
|
if ( !IsSteamDeck() )
|
||||||
|
DrawScreenSpaceRectangle( pLoadingMaterial, w-lw, h-lh+slide/2, lw, lh, 0, 0, lw-1, lh-1, lw, lh, NULL,1,1,depth-0.1 );
|
||||||
|
else
|
||||||
|
// TODO: Steam Deck
|
||||||
DrawScreenSpaceRectangle( pLoadingMaterial, w-lw, h-lh+slide/2, lw, lh, 0, 0, lw-1, lh-1, lw, lh, NULL,1,1,depth-0.1 );
|
DrawScreenSpaceRectangle( pLoadingMaterial, w-lw, h-lh+slide/2, lw, lh, 0, 0, lw-1, lh-1, lw, lh, NULL,1,1,depth-0.1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -613,7 +613,7 @@ void CEngineVGui::Init()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( IsX360() )
|
if ( IsX360() || IsSteamDeck() )
|
||||||
{
|
{
|
||||||
CCommand ccommand;
|
CCommand ccommand;
|
||||||
if ( CL_ShouldLoadBackgroundLevel( ccommand ) )
|
if ( CL_ShouldLoadBackgroundLevel( ccommand ) )
|
||||||
@ -1273,7 +1273,7 @@ void CEngineVGui::OnLevelLoadingStarted()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( IsX360() )
|
if ( IsX360() || IsSteamDeck() )
|
||||||
{
|
{
|
||||||
// TCR requirement, always!!!
|
// TCR requirement, always!!!
|
||||||
m_bShowProgressDialog = true;
|
m_bShowProgressDialog = true;
|
||||||
|
@ -258,7 +258,15 @@ void CHudCrosshair::Paint( void )
|
|||||||
pWeapon->GetWeaponCrosshairScale( flWeaponScale );
|
pWeapon->GetWeaponCrosshairScale( flWeaponScale );
|
||||||
}
|
}
|
||||||
|
|
||||||
float flPlayerScale = 1.0f;
|
int iScreenDiv = 1600;
|
||||||
|
if ( IsSteamDeck() )
|
||||||
|
iScreenDiv = 1440;
|
||||||
|
|
||||||
|
float flPlayerScale;
|
||||||
|
if ( !m_pCrosshair->bRenderUsingFont )
|
||||||
|
flPlayerScale = (ScreenHeight() / iScreenDiv) + 1;
|
||||||
|
else
|
||||||
|
flPlayerScale = 1.0f;
|
||||||
#ifdef TF_CLIENT_DLL
|
#ifdef TF_CLIENT_DLL
|
||||||
Color clr( cl_crosshair_red.GetInt(), cl_crosshair_green.GetInt(), cl_crosshair_blue.GetInt(), 255 );
|
Color clr( cl_crosshair_red.GetInt(), cl_crosshair_green.GetInt(), cl_crosshair_blue.GetInt(), 255 );
|
||||||
flPlayerScale = cl_crosshair_scale.GetFloat() / 32.0f; // the player can change the scale in the options/multiplayer tab
|
flPlayerScale = cl_crosshair_scale.GetFloat() / 32.0f; // the player can change the scale in the options/multiplayer tab
|
||||||
|
@ -1801,8 +1801,11 @@ void CBasePanel::ApplySchemeSettings(IScheme *pScheme)
|
|||||||
// load the loading icon
|
// load the loading icon
|
||||||
if ( m_iLoadingImageID == -1 )
|
if ( m_iLoadingImageID == -1 )
|
||||||
{
|
{
|
||||||
|
const char* loading = "console/startup_loading";
|
||||||
|
if ( IsSteamDeck() )
|
||||||
|
loading = "gamepadui/game_logo";
|
||||||
m_iLoadingImageID = surface()->CreateNewTextureID();
|
m_iLoadingImageID = surface()->CreateNewTextureID();
|
||||||
surface()->DrawSetTextureFile( m_iLoadingImageID, "Console/startup_loading", false, false );
|
surface()->DrawSetTextureFile( m_iLoadingImageID, loading, false, false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -428,6 +428,8 @@ inline bool KeyValues::IsEmpty( int keySymbol )
|
|||||||
return dat ? dat->IsEmpty( ) : true;
|
return dat ? dat->IsEmpty( ) : true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsSteamDeck();
|
||||||
|
|
||||||
bool EvaluateConditional( const char *str );
|
bool EvaluateConditional( const char *str );
|
||||||
|
|
||||||
class CUtlSortVectorKeyValuesByName
|
class CUtlSortVectorKeyValuesByName
|
||||||
|
@ -2179,6 +2179,34 @@ void KeyValues::RecursiveMergeKeyValues( KeyValues *baseKV )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int s_nSteamDeckCached = -1;
|
||||||
|
|
||||||
|
bool IsSteamDeck()
|
||||||
|
{
|
||||||
|
if (s_nSteamDeckCached == -1) {
|
||||||
|
if ( CommandLine()->CheckParm( "-nogamepadui" ) != 0 )
|
||||||
|
{
|
||||||
|
s_nSteamDeckCached = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( CommandLine()->CheckParm( "-gamepadui" ) != 0 )
|
||||||
|
{
|
||||||
|
s_nSteamDeckCached = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char *deck = getenv("SteamDeck");
|
||||||
|
if ( deck == 0 || *deck == 0 )
|
||||||
|
s_nSteamDeckCached = 0;
|
||||||
|
else
|
||||||
|
s_nSteamDeckCached = atoi(deck) != 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s_nSteamDeckCached;
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Returns whether a keyvalues conditional evaluates to true or false
|
// Returns whether a keyvalues conditional evaluates to true or false
|
||||||
// Needs more flexibility with conditionals, checking convars would be nice.
|
// Needs more flexibility with conditionals, checking convars would be nice.
|
||||||
@ -2196,7 +2224,7 @@ bool EvaluateConditional( const char *str )
|
|||||||
bNot = true;
|
bNot = true;
|
||||||
|
|
||||||
if ( Q_stristr( str, "$DECK" ) )
|
if ( Q_stristr( str, "$DECK" ) )
|
||||||
return false ^ bNot; // Steam deck unsupported
|
return IsSteamDeck() ^ bNot;
|
||||||
|
|
||||||
if ( Q_stristr( str, "$X360" ) )
|
if ( Q_stristr( str, "$X360" ) )
|
||||||
return IsX360() ^ bNot;
|
return IsX360() ^ bNot;
|
||||||
|
Loading…
Reference in New Issue
Block a user