/// <summary> /// アニメーションチップ読み込み /// </summary> /// <param name="lData"></param> /// <returns></returns> private bool ReadAnimationTile(LoadData lData) { AnmSquareTileFrame frame = null; AnmSquareTile tlMChipAnm = new AnmSquareTile(); LoadChank lChank, lChank02; LoadData lData02; Chunk chank = new Chunk(); int anmTileNo; lData.GetChank(chank); anmTileNo = 0; while ((lChank = lData.FindData(tlMChipAnm)) != null || !lData.GetFindEnd()) { if (lChank != null) { // チャンクブロック lChank.GetBlockChank(chank); // IDから処理選択 while ((lData02 = lChank.FindChank(chank)) != null) { if (chank.id == FAnmSquareTileFrame.ID) { //---------------------------- // アニメーションチップフレーム読み込み //---------------------------- frame = new AnmSquareTileFrame(); while ((lChank02 = lData02.FindData(frame)) != null || !lData02.GetFindEnd()) { tlMChipAnm.Add(frame); // これ以上入れ子は今のところない予定なので入れ子は無視 if (lChank02 != null) { lChank02 = null; throw new IOException("存在してはいけない入れ子を発見"); } frame = new AnmSquareTileFrame(); } frame = null; lData02 = null; break; } else { // FFID_MAPCHIP_INFO以外のIDが今現在存在しないで // 怪しい値を見つけたらエラーをはき出すようにする throw new IOException("未対応のIDが呼ばれた。"); } } lChank = null; } m_animationTile.Add(tlMChipAnm); tlMChipAnm = new AnmSquareTile(); ++anmTileNo; } return(true); }
//############################################################################## //############################################################################## //## //## 読み込み //## //############################################################################## //############################################################################## #region 読み込み /// <summary> /// Rectイメージを読み込む /// </summary> /// <param name="lData"></param> /// <returns></returns> internal bool RectRead(LoadData lData) { FImageRectInfo fImgRc = null; Chunk chank = new Chunk(); ImageRect inImgFile; LoadChank lChank, lChank02; LoadData lData02; int nImgNo = 0; lData.GetChank(chank); inImgFile = new ImageRect(); while ((lChank = lData.FindData(inImgFile)) != null || !lData.GetFindEnd()) { // ツリービューに反映 //tNode = m_rTV.Nodes[0].Nodes[1].Nodes.Add(inImgFile.GetString()); //tNode.ImageIndex = 2; //tNode.SelectedImageIndex = 3; //tNode.Name = TV_NAME_RECT_IMG; //------------------------------------- // イメージRECT情報読み込み //------------------------------------- if (lChank != null) { while ((lData02 = lChank.FindChank(chank)) != null) { // 通常1回のループのみ //------------------------------- // データが正しいかチェックする fImgRc = new FImageRectInfo(); while ((lChank02 = lData02.FindData(fImgRc)) != null || !lData02.GetFindEnd()) { // データ内部部分書き込み inImgFile.aSprite.Add(fImgRc); // これ以上入れ子は今のところない予定なので入れ子は無視 if (lChank02 != null) { lChank02 = null; } fImgRc = new FImageRectInfo(); } lData02 = null; } } ReadedRectImageEventCall(this, new ReadedRectImageEvent(inImgFile)); lChank = null; inImgFile = new ImageRect(); ++nImgNo; } inImgFile = null; return(true); }
//############################################################################## //############################################################################## //## //## 読み込み //## //############################################################################## //############################################################################## #region 読み込み /// <summary> /// スクエア・イメージファイルデータ /// </summary> /// <param name="lData"></param> internal bool SquareTileRead(LoadData lData) { FSquareTileInfo info = null; Chunk chank = new Chunk(); ImageSquareTile inImgFile; LoadChank lChank, lChank02; LoadData lData02; int imgNo = 0; lData.GetChank(chank); inImgFile = new ImageSquareTile(); while ((lChank = lData.FindData(inImgFile)) != null || !lData.GetFindEnd()) { // ツリービューに反映 //tNode = m_rTV.Nodes[0].Nodes[0].Nodes.Add(inImgFile.GetString()); //tNode.ImageIndex = 2; //tNode.SelectedImageIndex = 3; //tNode.Name = TV_NAME_MAPCHIP_IMG; //------------------------------------- // マップチップ情報読み込み //------------------------------------- if (lChank != null) { while ((lData02 = lChank.FindChank(chank)) != null) { // 通常1回のループのみ //------------------------------- // データが正しいかチェックする info = new FSquareTileInfo(); while ((lChank02 = lData02.FindData(info)) != null || !lData02.GetFindEnd()) { // データ内部部分書き込み inImgFile.tileInfos.Add(info); // これ以上入れ子は今のところない予定なので入れ子は無視 if (lChank02 != null) { Chunk chank2 = new Chunk(); lChank02.GetBlockChank(chank2); // IDから処理選択 while ((lData02 = lChank02.FindChank(chank2)) != null) { if (chank2.id == FAnmSquareTileHeader.ID) { ReadAnimationTile(lData02); } else { // AnmSquareTile.ID 以外のIDが今現在存在しないで // 怪しい値を見つけたらエラーをはき出すようにする throw new IOException("未対応のIDが呼ばれた。"); } } lChank02 = null; } info = new FSquareTileInfo(); } lData02 = null; } } ReadedSquareImageEventCall(this, new ReadedSquareImageEvent(inImgFile)); m_squareTileIndexs.Add(inImgFile.GetString()); lChank = null; inImgFile = new ImageSquareTile(); ++imgNo; } inImgFile = null; return(true); }