63 lines
1.0 KiB
C++
63 lines
1.0 KiB
C++
#include "StdAfx.h"
|
|
#include "ReadyState.h"
|
|
|
|
ReadyState::ReadyState()
|
|
{
|
|
m_StateCount = 0;
|
|
m_pbStateArray = NULL;
|
|
m_ChangedState = READY_STATE_NONE;
|
|
}
|
|
|
|
ReadyState::~ReadyState()
|
|
{
|
|
SAFE_DELETE_ARRAY( m_pbStateArray );
|
|
}
|
|
|
|
VOID ReadyState::Init( BYTE StateCount )
|
|
{
|
|
m_StateCount = StateCount;
|
|
m_pbStateArray = new BOOL[m_StateCount];
|
|
ZeroMemory( m_pbStateArray, sizeof(BOOL) * m_StateCount );
|
|
}
|
|
|
|
READY_STATE ReadyState::Update()
|
|
{
|
|
READY_STATE CurState = IsAllReady();
|
|
|
|
if( m_ChangedState != CurState )
|
|
{
|
|
m_ChangedState = CurState;
|
|
return m_ChangedState;
|
|
}
|
|
|
|
return READY_STATE_NONE;
|
|
}
|
|
|
|
VOID ReadyState::SetReadyState( BYTE StateID , BOOL bFlag )
|
|
{
|
|
if( !m_pbStateArray ) return;
|
|
|
|
m_pbStateArray[StateID] = bFlag;
|
|
}
|
|
|
|
BOOL ReadyState::IsReady( BYTE StateID )
|
|
{
|
|
if( !m_pbStateArray ) return FALSE;
|
|
|
|
return m_pbStateArray[StateID];
|
|
}
|
|
|
|
READY_STATE ReadyState::IsAllReady()
|
|
{
|
|
if( !m_pbStateArray ) return READY_STATE_NONE;
|
|
|
|
for( int i = 0; i < m_StateCount; ++i )
|
|
{
|
|
if( !IsReady( i ) )
|
|
return READY_STATE_NOT_READY;
|
|
}
|
|
|
|
return READY_STATE_READY;
|
|
}
|
|
|