typedef struct
{
var percent;
var balance;
} PERCBOOL;
PERCBOOL *pboolCreate ( var percent )
{
PERCBOOL *pbool = sys_malloc ( sizeof(PERCBOOL) );
pbool->percent = clamp ( percent, 0, 100 );
pbool->balance = pbool->percent;
return pbool;
}
void pboolRemove ( PERCBOOL *pbool )
{
sys_free ( pbool );
}
BOOL pboolSample ( PERCBOOL *pbool )
{
var percent = random ( 100 );
if ( pbool->balance > percent )
{
pbool->balance -= 100 - pbool->percent;
return TRUE;
}
else
{
pbool->balance += pbool->percent;
return FALSE;
}
}
void pboolModify ( PERCBOOL *pbool, var percent )
{
pbool->percent = clamp ( percent, 0, 100 );
pbool->balance = pbool->percent;
}