/********** Default Method **********/ void Wild_AStar_Init() { m_AStar_a_data = new Wild_AStar_Data[50]; for (int i = 0; i < (int)Wild_Map_SIZE.X * (int)Wild_Map_SIZE.Y; i++) { m_AStar_a_data[i] = new Wild_AStar_Data(); } Wild_AStar_Reset(); m_AStar_l_settingTemp = new List <int>(); }
// 칸마다 체크 void Wild_AStar_Setting2(int _num, int _dis) { // 체크에 관련된 헥스의 정보 가져오기 Wild_Tile hex = m_c_manager.Wild_GetTile(_num); // 헥스가 지나갈 수 없는 곳인가? if (hex.Wild_IsMove()) { Wild_AStar_Data data = m_AStar_a_data[_num]; if (data.m_distance > _dis) { data.m_distance = _dis; } bool isDoing = (data.m_condition == Wild_AStar_CONDITION.NOSEARCH); if (isDoing) { Wild_Object obj = hex.Wild_GetObject(); Wild_AStar_CONDITION con = Wild_AStar_CONDITION.MOVE; if (obj != null) { switch (obj.Wild_GetType()) { case Wild_Object_TYPE.OBJECT: con = Wild_AStar_CONDITION.OBJECT; break; } } m_AStar_a_data[_num].m_condition = con; if (con == Wild_AStar_CONDITION.MOVE) { m_AStar_l_settingTemp.Add(_num); } } } else { m_AStar_a_data[_num].m_condition = Wild_AStar_CONDITION.NOTMOVE; } }