/// <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(); }
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); } }
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(); }
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(); }
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); } }
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 { } }
///<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); }
///<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); }
/// <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(); }
/// <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(); }
///<summary> /// 添加景点 ///</summary> public bool AddScenery(SceneryInfo _SceneryInfo) { return(this._SceneryInfoDAL.AddScenery(_SceneryInfo)); }
///<summary> /// 更新景点信息 ///</summary> public bool UpdSceneryInfoByID(int SceneryID, SceneryInfo _SceneryInfo) { return(this._SceneryInfoDAL.UpdSceneryInfoByID(SceneryID, _SceneryInfo)); }
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>"); } }
/// <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(); }