Example #1
0
        /// <summary>
        /// The load sound scenery.
        /// </summary>
        /// <param name="SoundsList">The sounds list.</param>
        /// <remarks></remarks>
        public void LoadSoundScenery(ref List <SceneryInfo> SoundsList)
        {
            if (SoundsList == null)
            {
                SoundsList = new List <SceneryInfo>();
            }
            else
            {
                SoundsList.Clear();
            }

            map.OpenMap(MapTypes.Internal);

            // Lists all Scenery & Obstacles
            for (int i = 0; i < map.MapHeader.fileCount; i++)
            {
                if (map.MetaInfo.TagType[i] == "scnr")
                {
                    Meta m = new Meta(map);

                    // Base address of SCNR tag, offset of Sound Scenery Palette pointer (+224)
                    map.BR.BaseStream.Position = map.MetaInfo.Offset[i] + 224;
                    int chunkCount  = map.BR.ReadInt32();
                    int chunkOffset = map.BR.ReadInt32() - map.SecondaryMagic;

                    // Scenery Palette Objects
                    for (int a = 0; a < chunkCount; a++)
                    {
                        SceneryInfo Sound = new SceneryInfo();

                        // The Palette Chunk #
                        Sound.ScenPalNumber = a;

                        // Each chunk is 40 bytes apart
                        map.BR.BaseStream.Position = chunkOffset + a * 40;
                        char[] tagName = map.BR.ReadChars(4);
                        Sound.ScenTagNumber = map.Functions.ForMeta.FindMetaByID(map.BR.ReadInt32());

                        if (Sound.ScenTagNumber != -1)
                        {
                            string[] s = map.FileNames.Name[Sound.ScenTagNumber].Split('\\');
                            Sound.Name    = s[s.Length - 1];
                            Sound.TagPath = map.FileNames.Name[Sound.ScenTagNumber];
                            Sound.TagType = map.MetaInfo.TagType[Sound.ScenTagNumber];
                            SoundsList.Add(Sound);
                        }
                    }

                    break;
                }
            }

            map.CloseMap();
        }
Example #2
0
        void comboPilotPos_Changed(object sender, EventArgs e)
        {
            DataRow     dataRow     = comboPilotPos.GetSelectedData() as DataRow;
            SceneryInfo sceneryInfo = comboSceneries.GetSelectedData() as SceneryInfo;

            if (sceneryInfo != null)
            {
                SceneryParameters parameters = new SceneryParameters();
                parameters.File = sceneryInfo.ParFile;
                SetPilotPosition(parameters, dataRow);
            }
        }
Example #3
0
 void buttonBack_Click(object sender, EventArgs e)
 {
     if (changed)
     {
         SceneryInfo sceneryInfo = comboSceneries.GetSelectedData() as SceneryInfo;
         if (sceneryInfo != null)
         {
             Program.Instance.Scenery.LoadDefinition(sceneryInfo.ParFile);
         }
         Program.Instance.Player.Reset();
     }
     parent.HideDialog();
     owner.ShowMenu();
 }
Example #4
0
 void buttonOk_Click(object sender, EventArgs e)
 {
     if (changed)
     {
         SceneryInfo sceneryInfo = comboSceneries.GetSelectedData() as SceneryInfo;
         if (sceneryInfo != null)
         {
             Program.Instance.Scenery.LoadDefinition(sceneryInfo.ParFile);
         }
         Program.Instance.Player.Reset();
     }
     owner.Player.FlightModel.Paused = false;
     Dialog.SetRefreshTime((float)FrameworkTimer.GetTime());
     parent.HideDialog();
 }
Example #5
0
        void comboSceneries_Changed(object sender, EventArgs e)
        {
            changed = true;
            SceneryInfo sceneryInfo = comboSceneries.GetSelectedData() as SceneryInfo;

            if (sceneryInfo != null)
            {
                SceneryParameters parameters = new SceneryParameters();
                parameters.File = sceneryInfo.ParFile;
                if (parameters.SceneryType == SceneryParameters.SceneryTypeEnum.Photofield)
                {
                    comboPilotPos.IsVisible = false;
                }
                else
                {
                    comboPilotPos.IsVisible = true;
                }
                LoadPilotPositions(parameters);
            }
        }
Example #6
0
        private void ReadSceneryList()
        {
            sceneryList.Clear();
            DirectoryInfo dirInfo = new DirectoryInfo("data\\scenery");

            DirectoryInfo[] subDirs = dirInfo.GetDirectories();
            foreach (DirectoryInfo subDir in subDirs)
            {
                FileInfo[] parFiles = subDir.GetFiles("*.par");
                foreach (FileInfo parFile in parFiles)
                {
                    SceneryInfo sceneryInfo = new SceneryInfo();
                    sceneryInfo.Name    = Utility.GetFileNamePart(parFile.FullName);
                    sceneryInfo.ParFile = parFile.FullName;
                    sceneryInfo.Folder  = Utility.AppendDirectorySeparator(parFile.DirectoryName);
                    sceneryList.Add(sceneryInfo);
                }
            }

            try
            {
                dirInfo = new DirectoryInfo(string.Concat(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), "\\RC Desk Pilot\\Scenery\\"));
                subDirs = dirInfo.GetDirectories();
                foreach (DirectoryInfo subDir in subDirs)
                {
                    FileInfo[] parFiles = subDir.GetFiles("*.par");
                    foreach (FileInfo parFile in parFiles)
                    {
                        SceneryInfo sceneryInfo = new SceneryInfo();
                        sceneryInfo.Name    = Utility.GetFileNamePart(parFile.FullName);
                        sceneryInfo.ParFile = parFile.FullName;
                        sceneryInfo.Folder  = Utility.AppendDirectorySeparator(parFile.DirectoryName);
                        sceneryList.Add(sceneryInfo);
                    }
                }
            }
            catch
            { }
        }
Example #7
0
        ///<summary>
        /// 更新景点信息
        ///</summary>
        public bool UpdSceneryInfoByID(int SceneryID, SceneryInfo _SceneryInfo)
        {
            String Sql = "Update SceneryInfo set SceneryLoc=@SceneryLoc,OpenTime = @OpenTime,SLongitude=@SLongitude ," +
                         " Slatitude=@Slatitude,SceneryIntro=@SceneryIntro,BestTravel=@BestTravel,SceneryPrice=@SceneryPrice " +
                         " where SceneryID = @SceneryID";

            SqlParameter[] Paras = new SqlParameter[]
            {
                new SqlParameter("@SceneryLoc", _SceneryInfo.SceneryLoc),
                new SqlParameter("@OpenTime", _SceneryInfo.OpenTime),
                new SqlParameter("@SLongitude", _SceneryInfo.SLongitude),
                new SqlParameter("@Slatitude", _SceneryInfo.Slatitude),
                new SqlParameter("@SceneryIntro", _SceneryInfo.SceneryIntro),
                new SqlParameter("@BestTravel", _SceneryInfo.BestTravel),
                new SqlParameter("@SceneryPrice", _SceneryInfo.SceneryPrice),
                new SqlParameter("@SceneryID", SceneryID)
            };

            if (SqlHelper.ExecuteNonQuery(Sql, Paras, CommandType.Text) > 0)
            {
                return(true);
            }
            return(false);
        }
Example #8
0
        ///<summary>
        /// 添加景点
        ///</summary>
        public bool AddScenery(SceneryInfo _SceneryInfo)
        {
            String Sql = "insert into SceneryInfo(SceneryName,SceneryPrice,SceneryLoc,OpenTime,SLongitude,Slatitude,CityID,SceneryIntro,BestTravel)" +
                         "values(@SceneryName,@SceneryPrice,@SceneryLoc,@OpenTime,@SLongitude,@Slatitude,@CityID,@SceneryIntro,@BestTravel)";

            SqlParameter[] Paras = new SqlParameter[]
            {
                new SqlParameter("@SceneryName", _SceneryInfo.SceneryName),
                new SqlParameter("@SceneryPrice", _SceneryInfo.SceneryPrice),
                new SqlParameter("@SceneryLoc", _SceneryInfo.SceneryLoc),
                new SqlParameter("@OpenTime", _SceneryInfo.OpenTime),
                new SqlParameter("@SLongitude", _SceneryInfo.SLongitude),
                new SqlParameter("@Slatitude", _SceneryInfo.Slatitude),
                new SqlParameter("@CityID", _SceneryInfo.CityID),
                new SqlParameter("@SceneryIntro", _SceneryInfo.SceneryIntro),
                new SqlParameter("@BestTravel", _SceneryInfo.BestTravel),
            };

            if (SqlHelper.ExecuteNonQuery(Sql, Paras, CommandType.Text) > 0)
            {
                return(true);
            }
            return(false);
        }
Example #9
0
        /// <summary>
        /// The load sound scenery.
        /// </summary>
        /// <param name="SoundsList">The sounds list.</param>
        /// <remarks></remarks>
        public void LoadSoundScenery(ref List<SceneryInfo> SoundsList)
        {
            if (SoundsList == null)
            {
                SoundsList = new List<SceneryInfo>();
            }
            else
            {
                SoundsList.Clear();
            }

            map.OpenMap(MapTypes.Internal);

            // Lists all Scenery & Obstacles
            for (int i = 0; i < map.MapHeader.fileCount; i++)
            {
                if (map.MetaInfo.TagType[i] == "scnr")
                {
                    Meta m = new Meta(map);

                    // Base address of SCNR tag, offset of Sound Scenery Palette pointer (+224)
                    map.BR.BaseStream.Position = map.MetaInfo.Offset[i] + 224;
                    int chunkCount = map.BR.ReadInt32();
                    int chunkOffset = map.BR.ReadInt32() - map.SecondaryMagic;

                    // Scenery Palette Objects
                    for (int a = 0; a < chunkCount; a++)
                    {
                        SceneryInfo Sound = new SceneryInfo();

                        // The Palette Chunk #
                        Sound.ScenPalNumber = a;

                        // Each chunk is 40 bytes apart
                        map.BR.BaseStream.Position = chunkOffset + a * 40;
                        char[] tagName = map.BR.ReadChars(4);
                        Sound.ScenTagNumber = map.Functions.ForMeta.FindMetaByID(map.BR.ReadInt32());

                        if (Sound.ScenTagNumber != -1)
                        {
                            string[] s = map.FileNames.Name[Sound.ScenTagNumber].Split('\\');
                            Sound.Name = s[s.Length - 1];
                            Sound.TagPath = map.FileNames.Name[Sound.ScenTagNumber];
                            Sound.TagType = map.MetaInfo.TagType[Sound.ScenTagNumber];
                            SoundsList.Add(Sound);
                        }
                    }

                    break;
                }
            }

            map.CloseMap();
        }
Example #10
0
        /// <summary>
        /// The load scenery.
        /// </summary>
        /// <param name="SceneryList">The scenery list.</param>
        /// <remarks></remarks>
        public void LoadScenery(ref List<SceneryInfo> SceneryList)
        {
            if (SceneryList == null)
            {
                SceneryList = new List<SceneryInfo>();
            }
            else
            {
                SceneryList.Clear();
            }

            map.OpenMap(MapTypes.Internal);

            // Lists all Scenery
            for (int i = 0; i < map.MapHeader.fileCount; i++)
            {
                if (map.MetaInfo.TagType[i] == "scnr")
                {
                    Meta m = new Meta(map);

                    // Base address of SCNR tag, offset of Scenery Palette pointer (+88)
                    map.BR.BaseStream.Position = map.MetaInfo.Offset[i] + 88;
                    int chunkCount = map.BR.ReadInt32();
                    int chunkOffset = map.BR.ReadInt32() - map.SecondaryMagic;

                    // Scenery Palette Objects
                    for (int a = 0; a < chunkCount; a++)
                    {
                        SceneryInfo Scenery = new SceneryInfo();

                        // The Palette Chunk #
                        Scenery.ScenPalNumber = a;

                        // Each chunk is 40 bytes apart
                        map.BR.BaseStream.Position = chunkOffset + a * 40;
                        char[] tagName = map.BR.ReadChars(4);
                        Scenery.ScenTagNumber = map.Functions.ForMeta.FindMetaByID(map.BR.ReadInt32());

                        try
                        {
                            // Retrieve the Model HLMT tag from the Scenery tag (+56)
                            map.BR.BaseStream.Position = map.MetaInfo.Offset[Scenery.ScenTagNumber] + 56;
                            Scenery.HlmtTagNumber = map.Functions.ForMeta.FindMetaByID(map.BR.ReadInt32());

                            // Base address of HLMT tag, offset of MODE pointer (+4)
                            map.BR.BaseStream.Position = map.MetaInfo.Offset[Scenery.HlmtTagNumber] + 4;
                            Scenery.ModelTagNumber = map.Functions.ForMeta.FindMetaByID(map.BR.ReadInt32());

                            if (Scenery.ModelTagNumber != -1)
                            {
                                m.ReadMetaFromMap(Scenery.ModelTagNumber, false);
                                Scenery.Model = new ParsedModel(ref m);
                            }
                            else
                            {
                                Scenery.Model = null;
                            }

                            ParsedModel.DisplayedInfo.LoadDirectXTexturesAndBuffers(ref device, ref Scenery.Model);

                            string[] s = map.FileNames.Name[Scenery.ScenTagNumber].Split('\\');
                            Scenery.Name = s[s.Length - 1];
                            Scenery.TagPath = map.FileNames.Name[Scenery.ScenTagNumber];
                            Scenery.TagType = map.MetaInfo.TagType[Scenery.ScenTagNumber];
                            SceneryList.Add(Scenery);
                        }
                        catch
                        {
                        }
                    }

                    break;
                }
            }

            map.CloseMap();
        }
Example #11
0
 ///<summary>
 /// 添加景点
 ///</summary>
 public bool AddScenery(SceneryInfo _SceneryInfo)
 {
     return(this._SceneryInfoDAL.AddScenery(_SceneryInfo));
 }
Example #12
0
 ///<summary>
 /// 更新景点信息
 ///</summary>
 public bool UpdSceneryInfoByID(int SceneryID, SceneryInfo _SceneryInfo)
 {
     return(this._SceneryInfoDAL.UpdSceneryInfoByID(SceneryID, _SceneryInfo));
 }
Example #13
0
        protected void btEdit_Click(object sender, EventArgs e)
        {
            //添加景点信息
            STypeBLL       _STypeBLL       = new STypeBLL();
            SceneryInfoBLL _SceneryInfoBLL = new SceneryInfoBLL();
            SceneryInfo    _SceneryInfo    = new SceneryInfo();

            _SceneryInfo.SceneryName = this.txtSceneryName.Text.Trim();
            _SceneryInfo.CityID      = int.Parse(Request.QueryString["CityID"].ToString());

            _SceneryInfo.SceneryPrice = this.txtSceneryPrice.Text.Trim();
            _SceneryInfo.SceneryLoc   = this.TxtSceneryLoc.Text.Trim();
            _SceneryInfo.OpenTime     = this.TxtOpenTime.Text.Trim();
            _SceneryInfo.SceneryIntro = this.TxtSceneryIntroduce.Text.Trim();
            _SceneryInfo.BestTravel   = this.TxtScenerySuitTime.Text.Trim();

            if (txtSceneryLgt.Text.Trim() != "")
            {
                _SceneryInfo.SLongitude = float.Parse(txtSceneryLgt.Text.Trim().ToString());
            }
            else
            {
                _SceneryInfo.SLongitude = 0.0f;
            }

            if (txtSceneryLat.Text.Trim() != "")
            {
                _SceneryInfo.Slatitude = float.Parse(txtSceneryLat.Text.Trim().ToString());
            }
            else
            {
                _SceneryInfo.Slatitude = 0.0f;
            }

            //添加景点类型
            ArrayList TypeList = new ArrayList();

            for (int i = 0; i < this.CBoxType.Items.Count; i++)
            {
                if (this.CBoxType.Items[i].Selected)
                {
                    TypeList.Add(this.CBoxType.Items[i].Value);
                }
            }

            bool IsSType = true;

            for (int j = 0; j < TypeList.Count; j++)
            {
                if (!_STypeBLL.AddSceneryType(int.Parse(TypeList[j].ToString()), _SceneryInfo.CityID))
                {
                    IsSType = false;
                    break;
                }
            }

            //判断是否添加成功
            if (_SceneryInfoBLL.AddScenery(_SceneryInfo) && IsSType)
            {
                Response.Write("<script language='javascript'>");
                Response.Write("alert('添加成功');");
                Response.Write("document.location.href='SceneryInfoList.aspx';");
                Response.Write("</script>");
            }
        }
        protected void btEdit_Click(object sender, EventArgs e)
        {
            //根据景点信息跟新景点
            SceneryInfoBLL _SceneryInfoBLL = new SceneryInfoBLL();
            SceneryInfo    _SceneryInfo    = new SceneryInfo();


            _SceneryInfo.SceneryPrice = this.txtSceneryPrice.Text.Trim();
            _SceneryInfo.SceneryLoc   = this.TxtSceneryLoc.Text.Trim();
            _SceneryInfo.OpenTime     = this.TxtOpenTime.Text.Trim();
            _SceneryInfo.SceneryIntro = this.TxtSceneryIntroduce.Text.Trim();
            _SceneryInfo.BestTravel   = this.TxtScenerySuitTime.Text.Trim();

            if (txtSceneryLgt.Text.Trim() != "")
            {
                _SceneryInfo.SLongitude = float.Parse(txtSceneryLgt.Text.Trim().ToString());
            }
            else
            {
                _SceneryInfo.SLongitude = 0.0f;
            }

            if (txtSceneryLat.Text.Trim() != "")
            {
                _SceneryInfo.Slatitude = float.Parse(txtSceneryLat.Text.Trim().ToString());
            }
            else
            {
                _SceneryInfo.Slatitude = 0.0f;
            }

            //更新景点信息

            int SceneryID = int.Parse(Request.QueryString["SceneryID"].ToString());
            int CityID    = int.Parse(Request.QueryString["CityID"].ToString());

            //更新景点类型  先把景点类型都删除然后
            bool      TypeFlag  = true;
            STypeBLL  _STypeBLL = new STypeBLL();
            ArrayList TypeList  = new ArrayList();

            for (int i = 0; i < this.CBoxType.Items.Count; i++)
            {
                if (this.CBoxType.Items[i].Selected)
                {
                    TypeList.Add(this.CBoxType.Items[i].Value);
                }
            }
            if (_STypeBLL.GetSceTypeCount(SceneryID) > 0)
            {
                _STypeBLL.DelSType(SceneryID);
            }

            for (int j = 0; j < TypeList.Count; j++)
            {
                if (!_STypeBLL.AddSceneryType(int.Parse(TypeList[j].ToString()), SceneryID))
                {
                    TypeFlag = false;
                }
            }

            if (_SceneryInfoBLL.UpdSceneryInfoByID(SceneryID, _SceneryInfo) && TypeFlag)
            {
                Response.Write("<script language='javascript'>");
                Response.Write("alert('更新成功');");
                Response.Write("document.location.href='SceneryInfoList.aspx?CityID=" + CityID.ToString() + "';");
                Response.Write("</script>");
            }
        }
Example #15
0
        /// <summary>
        /// The load obstacles.
        /// </summary>
        /// <param name="ObstacleList">The obstacle list.</param>
        /// <remarks></remarks>
        public void LoadObstacles(ref List <SceneryInfo> ObstacleList)
        {
            if (ObstacleList == null)
            {
                ObstacleList = new List <SceneryInfo>();
            }
            else
            {
                ObstacleList.Clear();
            }

            map.OpenMap(MapTypes.Internal);

            // Lists all Obstacles
            for (int i = 0; i < map.MapHeader.fileCount; i++)
            {
                if (map.MetaInfo.TagType[i] == "scnr")
                {
                    Meta m = new Meta(map);

                    // Base address of SCNR tag, offset of Crate Palette pointer (+816)
                    map.BR.BaseStream.Position = map.MetaInfo.Offset[i] + 816;
                    int chunkCount  = map.BR.ReadInt32();
                    int chunkOffset = map.BR.ReadInt32() - map.SecondaryMagic;

                    // Crate (Obstacle) Palette Objects
                    for (int a = 0; a < chunkCount; a++)
                    {
                        SceneryInfo Obstacle = new SceneryInfo();

                        // The Palette Chunk #
                        Obstacle.ScenPalNumber = a;

                        // Each chunk is 40 bytes apart
                        map.BR.BaseStream.Position = chunkOffset + a * 40;
                        char[] tagName = map.BR.ReadChars(4);
                        Obstacle.ScenTagNumber = map.Functions.ForMeta.FindMetaByID(map.BR.ReadInt32());
                        if (Obstacle.ScenTagNumber != -1)
                        {
                            // Retrieve the Model HLMT tag from the Scenery tag (+56)
                            map.BR.BaseStream.Position = map.MetaInfo.Offset[Obstacle.ScenTagNumber] + 56;
                            Obstacle.HlmtTagNumber     = map.Functions.ForMeta.FindMetaByID(map.BR.ReadInt32());

                            // Base address of HLMT tag, offset of MODE pointer (+4)
                            map.BR.BaseStream.Position = map.MetaInfo.Offset[Obstacle.HlmtTagNumber] + 4;
                            Obstacle.ModelTagNumber    = map.Functions.ForMeta.FindMetaByID(map.BR.ReadInt32());

                            m.ReadMetaFromMap(Obstacle.ModelTagNumber, false);
                            Obstacle.Model = new ParsedModel(ref m);
                            ParsedModel.DisplayedInfo.LoadDirectXTexturesAndBuffers(ref device, ref Obstacle.Model);

                            string[] s = map.FileNames.Name[Obstacle.ScenTagNumber].Split('\\');
                            Obstacle.Name    = s[s.Length - 1];
                            Obstacle.TagPath = map.FileNames.Name[Obstacle.ScenTagNumber];
                            Obstacle.TagType = map.MetaInfo.TagType[Obstacle.ScenTagNumber];
                            ObstacleList.Add(Obstacle);
                        }
                    }

                    break;
                }
            }

            map.CloseMap();
        }