private void InitDir()
 {
     m_dir    = new DIRPOINT[4];
     m_dir[0] = new DIRPOINT(1, 0);
     m_dir[1] = new DIRPOINT(-1, 0);
     m_dir[2] = new DIRPOINT(0, 1);
     m_dir[3] = new DIRPOINT(0, -1);
 }
    private List <Panel> GetNeighbor(Panel panel)
    {
        List <Panel> rtnList = new List <Panel> ();

        if (panel.Passable == false)
        {
            return(rtnList);
        }

        rtnList.Capacity = m_dir.Length;
        for (int i = 0; i < m_dir.Length; i++)
        {
            DIRPOINT dirTmp = new DIRPOINT(m_dir[i].nX + panel.GetPoint().nX,
                                           m_dir[i].nZ + panel.GetPoint().nZ);
            if (dirTmp.nX >= -m_nSizeX / 2 && dirTmp.nX <= m_nSizeX / 2 &&
                dirTmp.nZ >= -m_nSizeZ / 2 && dirTmp.nZ <= m_nSizeZ / 2)
            {
                rtnList.Add(GetMapPanel(dirTmp.nX, dirTmp.nZ));
            }
        }

        return(rtnList);
    }