Esempio n. 1
0
        public void LoadNavmesh(ref PK2.cPK2Reader DataPK2)
        {
            var buffer = DataPK2["\navmesh\nv_" + m_Y.ToString("X2") + m_X.ToString("X2") + ".nvm"];

            if (buffer != null)
            {
                MemoryStream ms = new MemoryStream(buffer);
                BinaryReader br = new BinaryReader(ms);
            }
            else
            {
                throw new Exception("Navmesh file was not found X:" + m_X + " Y:" + m_Y + " (" + m_Y.ToString("X2") + m_X.ToString("X2") + ")");
            }
        }
Esempio n. 2
0
        public NavmeshEngine(int[] regionCodes, ref PK2.cPK2Reader MediaPK2, ref PK2.cPK2Reader DataPK2)
        {
            //Preload all regions
            foreach (var region in regionCodes)
            {
                byte x = BitConverter.GetBytes(region)[1];
                byte y = BitConverter.GetBytes(region)[0];
                m_sectors.Add(region, new cSector(ref MediaPK2, ref DataPK2, x, y));
            }

            foreach (var sector in m_sectors.Values)
            {
                sector.LoadNavmesh(ref DataPK2);
            }
        }
Esempio n. 3
0
        public cSector(ref PK2.cPK2Reader MediaPK2, ref PK2.cPK2Reader DataPK2, byte XSec, byte YSec)
        {
            m_X = XSec;
            m_Y = YSec;

            m_g = null;

            #region Check Media

            if (MediaPK2 != null)
            {
                if (MediaPK2.IsLoaded)
                {
                    byte[] buffer = MediaPK2["\\minimap\\" + m_X + "x" + m_Y + ".ddj"];
                    if (buffer != null)
                    {
                        m_image       = PK2.DDSLoader.LoadDDJ(buffer);
                        m_g           = Graphics.FromImage(m_image);
                        m_readyToDraw = true;
                    }
                }
            }

            #endregion

            #region Check Data

            if (DataPK2 != null)
            {
                if (DataPK2.IsLoaded)
                {
                    m_readyToLoad = true;
                    m_readyToDraw = true; //But without image.
                }
                else
                {
                    throw new Exception("[cSector::ctor] Data.pk2 is not loaded");
                }
            }
            else
            {
                throw new Exception("[cSector::ctor] Data.pk2 is not loaded");
            }

            #endregion
        }