202 lines
4.7 KiB
C++
202 lines
4.7 KiB
C++
#include "stdafx.h"
|
|
//
|
|
//
|
|
//#include "SGameObject.h"
|
|
//#include "SGameMessage.h"
|
|
//
|
|
//#include "SStateVM.h"
|
|
//
|
|
////using namespace GAME_INPUT;
|
|
////using namespace GAME_STATE;
|
|
////
|
|
//////----------------------------------
|
|
//////전이 상태 추가
|
|
////void FSMstate::AddTransition( int iInput, int iOutputID )
|
|
////{
|
|
//// for( unsigned int i=0; i<m_usNumberOfTransistions; ++i )
|
|
//// {
|
|
//// if( !m_piOutputState[i] )
|
|
//// break;
|
|
//// }
|
|
//// if( i < m_usNumberOfTransistions )
|
|
//// {
|
|
//// m_piOutputState[i] = iOutputID;
|
|
//// m_piInputs[i] = iInput;
|
|
//// }
|
|
////}
|
|
////
|
|
////int FSMstate::GetOutput( int iInput )
|
|
////{
|
|
//// int iOutputID = m_iStateID; // output state to be returned
|
|
////
|
|
//// for( unsigned int i=0; i<m_usNumberOfTransistions; ++i )
|
|
//// {
|
|
//// if( !m_piOutputState[i] )
|
|
//// break;
|
|
//// if( iInput == m_piInputs[i] )
|
|
//// {
|
|
//// iOutputID = m_piOutputState[i]; // output state id
|
|
//// break;
|
|
//// }
|
|
//// }
|
|
//// return( iOutputID );
|
|
////}
|
|
////
|
|
////void FSMstate::DeleteTransition( int iOutputID )
|
|
////{
|
|
//// for( unsigned int i=0; i<m_usNumberOfTransistions; ++i )
|
|
//// {
|
|
//// if( m_piOutputState[i] == iOutputID )
|
|
//// break;
|
|
//// }
|
|
////
|
|
//// if( i >= m_usNumberOfTransistions )
|
|
//// return;
|
|
////
|
|
//// m_piInputs[i] = 0;
|
|
//// m_piOutputState[i] = 0;
|
|
////
|
|
//// for( ; i<(m_usNumberOfTransistions-1); ++i )
|
|
//// {
|
|
//// if( !m_piOutputState[i] )
|
|
//// break;
|
|
////
|
|
//// m_piInputs[i] = m_piInputs[i+1];
|
|
//// m_piOutputState[i] = m_piOutputState[i+1];
|
|
//// }
|
|
//// m_piInputs[i] = 0;
|
|
//// m_piOutputState[i] = 0;
|
|
////}
|
|
////
|
|
////FSMstate::FSMstate( int iStateID, unsigned usTransitions )
|
|
////{
|
|
//// if( !usTransitions )
|
|
//// m_usNumberOfTransistions = 1;
|
|
//// else
|
|
//// m_usNumberOfTransistions = usTransitions;
|
|
////
|
|
//// m_iStateID = iStateID;
|
|
////
|
|
//// m_piInputs = new int[m_usNumberOfTransistions];
|
|
//// for( unsigned int i=0; i<m_usNumberOfTransistions; ++i )
|
|
//// m_piInputs[i] = 0;
|
|
////
|
|
//// m_piOutputState = new int[m_usNumberOfTransistions];
|
|
//// for( unsigned int i=0; i<m_usNumberOfTransistions; ++i )
|
|
//// m_piOutputState[i] = 0;
|
|
////}
|
|
////
|
|
////FSMstate::~FSMstate()
|
|
////{
|
|
//// delete [] m_piInputs;
|
|
//// delete [] m_piOutputState;
|
|
////}
|
|
////
|
|
//////----------------------------------
|
|
////
|
|
////SStateVM::SStateVM( int iStateID )
|
|
////{
|
|
//// m_iCurrentState = iStateID;
|
|
//// Init();
|
|
////}
|
|
////
|
|
////SStateVM::~SStateVM()
|
|
////{
|
|
//// FSMstate *pState = NULL;
|
|
//// State_Map::iterator it;
|
|
////
|
|
//// if( !m_map.empty() )
|
|
//// {
|
|
//// for( it = m_map.begin(); it != m_map.end(); ++it )
|
|
//// {
|
|
//// pState = (FSMstate *)((*it).second);
|
|
//// if( pState != NULL )
|
|
//// delete pState;
|
|
//// }
|
|
//// }
|
|
////}
|
|
////
|
|
////int SStateVM::StateTransition( int iInput )
|
|
////{
|
|
//// //현재 상태를 얻어 온다.
|
|
//// FSMstate *pState = GetState( m_iCurrentState );
|
|
//// if( pState == NULL )
|
|
//// {
|
|
//// _oprint( "Error : 현재 상태가 없다\n" );
|
|
//// m_iCurrentState = 0;
|
|
//// return m_iCurrentState;
|
|
//// }
|
|
////
|
|
//// //현재 상태에 입력 상태를 설정하여, 전이 되는 상태를 받아 온다.
|
|
//// m_iCurrentState = pState->GetOutput( iInput );
|
|
//// _oprint( "상태 변경 : %d ->", m_iCurrentState );
|
|
//// return m_iCurrentState;
|
|
////}
|
|
////
|
|
////FSMstate *SStateVM::GetState( int iStateID )
|
|
////{
|
|
//// FSMstate *pState = NULL;
|
|
//// State_Map::iterator it;
|
|
////
|
|
//// if( !m_map.empty() )
|
|
//// {
|
|
//// it = m_map.find( iStateID );
|
|
//// if( it != m_map.end() )
|
|
//// pState = (FSMstate *)((*it).second);
|
|
//// }
|
|
//// return( pState );
|
|
////}
|
|
////
|
|
////void SStateVM::AddState( FSMstate *pNewState )
|
|
////{
|
|
//// FSMstate *pState = NULL;
|
|
//// State_Map::iterator it;
|
|
////
|
|
//// if( !m_map.empty() )
|
|
//// {
|
|
//// it = m_map.find( pNewState->GetID() );
|
|
//// if( it != m_map.end() )
|
|
//// pState = (FSMstate *)((*it).second);
|
|
//// }
|
|
////
|
|
//// if( pState != NULL )
|
|
//// {
|
|
//// _oprint( "Error : 이미 있는 상태가 추가 됐다!!!\n" );
|
|
//// return;
|
|
//// }
|
|
////
|
|
//// m_map.insert( SM_VT(pNewState->GetID(), pNewState) );
|
|
////}
|
|
////
|
|
////void SStateVM::DeleteState( int iStateID )
|
|
////{
|
|
//// FSMstate *pState = NULL;
|
|
//// State_Map::iterator it;
|
|
////
|
|
//// if( !m_map.empty() )
|
|
//// {
|
|
//// it = m_map.find( iStateID );
|
|
//// if( it != m_map.end() )
|
|
//// pState = (FSMstate *)((*it).second);
|
|
//// }
|
|
////
|
|
//// if( pState != NULL &&
|
|
//// pState->GetID() == iStateID )
|
|
//// {
|
|
//// m_map.erase( it );
|
|
//// delete pState;
|
|
//// }
|
|
////}
|
|
////
|
|
////void SStateVM::Init()
|
|
////{
|
|
//// //FSMstate *pFSMstate = NULL;
|
|
////
|
|
//// ////기본 상태
|
|
//// //pFSMstate = new FSMstate( ST_NORMAL, 3 );
|
|
//// // pFSMstate->AddTransition( RQ_MOVE , ST_MOVE_WAIT );
|
|
//// // pFSMstate->AddTransition( RQ_ATTACK, ST_ATTACK );
|
|
//// // pFSMstate->AddTransition( RQ_SKILL , ST_SKILL );
|
|
//// //AddState( pFSMstate );
|
|
////}
|