// all interface of actions ORESULT AI_Character::Obj_Move(const WORLD_POS* pTar) { Obj_Character* pCharacter = GetCharacter(); if (!pCharacter) { Assert(NULL && "AI_Character::MoveTo...pCharacter = NULL..."); return OR_ERROR; } if (TRUE == pCharacter->IsLimitMove() ) { return OR_LIMIT_MOVE; } if (pCharacter->IsDie()) { return OR_DIE; } int numNode = 0; const WORLD_POS* pCur = pCharacter->getWorldPos(); WORLD_POS posNode[MAX_CHAR_PATH_NODE_NUMBER]; WORLD_POS posCur = *pCur; pCharacter->getScene()->GetMap()->VerifyPos( const_cast<WORLD_POS*>(pTar) ); pCharacter->getScene()->GetMap()->GetPathFinder()->FindPath(&posCur, const_cast<WORLD_POS*>(pTar), posNode, numNode, pCharacter->GetDriverLevel()); if( numNode == 0 ) return OR_ERROR; return _state->Obj_Move(this, -1, numNode, posNode ); }