P47R!CK
06-02-2005, 04:13 AM
// taken from the sdk
static void ScreenOverlay_f( void )
{
if( engine->Cmd_Argc() == 2 )
{
if ( !Q_stricmp( "off", engine->Cmd_Argv(1) ) )
{
view->SetScreenOverlayMaterial( NULL );
}
else
{
IMaterial *pMaterial = materials->FindMaterial( engine->Cmd_Argv(1), TEXTURE_GROUP_OTHER, false );
if ( !IsErrorMaterial( pMaterial ) )
{
view->SetScreenOverlayMaterial( pMaterial );
}
else
{
view->SetScreenOverlayMaterial( NULL );
}
}
}
else
{
IMaterial *pMaterial = view->GetScreenOverlayMaterial();
Warning( "r_screenoverlay: %s\n", pMaterial ? pMaterial->GetName() : "off" );
}
}
static ConCommand r_screenspacematerial( "r_screenoverlay", ScreenOverlay_f );
Solutions:
Hook SetScreenOverlayMaterial and make the parameter always NULL
Hook the command itself like i did on HLH source
Go Tetsuos way:
http://forum.game-deception.com/showthread.php?t=6736
Credits Tetsuo.PizzaPan and siodine
static void ScreenOverlay_f( void )
{
if( engine->Cmd_Argc() == 2 )
{
if ( !Q_stricmp( "off", engine->Cmd_Argv(1) ) )
{
view->SetScreenOverlayMaterial( NULL );
}
else
{
IMaterial *pMaterial = materials->FindMaterial( engine->Cmd_Argv(1), TEXTURE_GROUP_OTHER, false );
if ( !IsErrorMaterial( pMaterial ) )
{
view->SetScreenOverlayMaterial( pMaterial );
}
else
{
view->SetScreenOverlayMaterial( NULL );
}
}
}
else
{
IMaterial *pMaterial = view->GetScreenOverlayMaterial();
Warning( "r_screenoverlay: %s\n", pMaterial ? pMaterial->GetName() : "off" );
}
}
static ConCommand r_screenspacematerial( "r_screenoverlay", ScreenOverlay_f );
Solutions:
Hook SetScreenOverlayMaterial and make the parameter always NULL
Hook the command itself like i did on HLH source
Go Tetsuos way:
http://forum.game-deception.com/showthread.php?t=6736
Credits Tetsuo.PizzaPan and siodine