You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.2 KiB
63 lines
1.2 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#include <stdio.h> |
|
#include "basetypes.h" |
|
#include "pacifier.h" |
|
#include "tier0/dbg.h" |
|
|
|
|
|
static int g_LastPacifierDrawn = -1; |
|
static bool g_bPacifierSuppressed = false; |
|
|
|
#define clamp(a,b,c) ( (a) > (c) ? (c) : ( (a) < (b) ? (b) : (a) ) ) |
|
|
|
void StartPacifier( char const *pPrefix ) |
|
{ |
|
Msg( "%s", pPrefix ); |
|
g_LastPacifierDrawn = -1; |
|
UpdatePacifier( 0.001f ); |
|
} |
|
|
|
void UpdatePacifier( float flPercent ) |
|
{ |
|
int iCur = (int)(flPercent * 40.0f); |
|
iCur = clamp( iCur, g_LastPacifierDrawn, 40 ); |
|
|
|
if( iCur != g_LastPacifierDrawn && !g_bPacifierSuppressed ) |
|
{ |
|
for( int i=g_LastPacifierDrawn+1; i <= iCur; i++ ) |
|
{ |
|
if ( !( i % 4 ) ) |
|
{ |
|
Msg("%d", i/4); |
|
} |
|
else |
|
{ |
|
if( i != 40 ) |
|
{ |
|
Msg("."); |
|
} |
|
} |
|
} |
|
|
|
g_LastPacifierDrawn = iCur; |
|
} |
|
} |
|
|
|
void EndPacifier( bool bCarriageReturn ) |
|
{ |
|
UpdatePacifier(1); |
|
|
|
if( bCarriageReturn && !g_bPacifierSuppressed ) |
|
Msg("\n"); |
|
} |
|
|
|
void SuppressPacifier( bool bSuppress ) |
|
{ |
|
g_bPacifierSuppressed = bSuppress; |
|
}
|
|
|