コード例 #1
0
        /// <summary>
        /// Loads RadarCol object from file in RadarCol.mul format.
        /// </summary>
        /// <param name="file">File path.</param>
        public static RadarCol Load(string file)
        {
            Stream       stream = null;
            BinaryReader reader = null;

            try
            {
                stream = File.OpenRead(file);
                reader = new BinaryReader(stream);

                if (stream.Length != MaxIndex * 2)
                {
                    throw new Exception("Invalid file size. Expected: 131072 bytes.");
                }

                RadarCol radarCol = new RadarCol();

                for (int i = 0; i < radarCol.data.Length; i++)
                {
                    radarCol.data[i] = reader.ReadUInt16();
                }

                Trace.WriteLine(String.Format("RadarCol: File \"{0}\" succesfully loaded.", file), "MulLib");
                return(radarCol);
            }
            catch (Exception e)
            {
                throw new Exception("Error loading RadarCol.", e);
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }

                if (stream != null)
                {
                    stream.Close();
                }
            }
        }
コード例 #2
0
ファイル: DataFiles.cs プロジェクト: greeduomacro/phoenix
        /// <summary>
        /// Called by Phoenix.Initialize().
        /// </summary>
        /// <param name="param">Client directory.</param>
        internal static void Load(object param)
        {
            string dir = param.ToString();

            try {
                Trace.WriteLine("Loading ultima data files started..", "MulLib");

                tiledata = TileData.Load(Path.Combine(dir, "tiledata.mul"));
                hues = Hues.Load(Path.Combine(dir, "hues.mul"));
                radarCol = RadarCol.Load(Path.Combine(dir, "radarcol.mul"));
                skills = Skills.Load(Path.Combine(dir, "skills.idx"), Path.Combine(dir, "skills.mul"));
                art = Art.Load(Path.Combine(dir, "artidx.mul"), Path.Combine(dir, "art.mul"), MulFileAccessMode.ReadOnly);
                multi = Multi.Load(Path.Combine(dir, "multi.idx"), Path.Combine(dir, "multi.mul"), MulFileAccessMode.ReadOnly);

                Trace.WriteLine("Loading ultima data files finished.", "MulLib");
            }
            catch (Exception e) {
                string msg = String.Format("Unable to load ultima data files. Program will be terminated. Exception:\r\n{0}", e);
                Trace.WriteLine(msg, "MulLib");
                MessageBox.Show(msg, "Fatal Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Core.Terminate();
            }

            try {
                SyncEvent.Invoke(Loaded, null, EventArgs.Empty);
            }
            catch (Exception e) {
                Trace.WriteLine("Unhandled exception in DataFiles.Loaded event. Exception:\r\n" + e.ToString(), "MulLib");
            }
        }
コード例 #3
0
ファイル: RadarCol.cs プロジェクト: greeduomacro/phoenix
        /// <summary>
        /// Loads RadarCol object from file in RadarCol.mul format.
        /// </summary>
        /// <param name="file">File path.</param>
        public static RadarCol Load(string file)
        {
            Stream stream = null;
            BinaryReader reader = null;

            try
            {
                stream = File.OpenRead(file);
                reader = new BinaryReader(stream);

                if (stream.Length != MaxIndex * 2)
                    throw new Exception("Invalid file size. Expected: 131072 bytes.");

                RadarCol radarCol = new RadarCol();

                for (int i = 0; i < radarCol.data.Length; i++)
                {
                    radarCol.data[i] = reader.ReadUInt16();
                }

                Trace.WriteLine(String.Format("RadarCol: File \"{0}\" succesfully loaded.", file), "MulLib");
                return radarCol;
            }
            catch (Exception e)
            {
                throw new Exception("Error loading RadarCol.", e);
            }
            finally
            {
                if (reader != null)
                    reader.Close();

                if (stream != null)
                    stream.Close();
            }
        }