Files
Leviathan/Client/Game/game/Player/SStateVM.cpp
T
2026-06-01 12:46:52 +02:00

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 );
////}