Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        //##############################################################################
        //##############################################################################
        //##
        //##  読み込み
        //##
        //##############################################################################
        //##############################################################################
        #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);
        }
Beispiel #3
0
        //##############################################################################
        //##############################################################################
        //##
        //##  読み込み
        //##
        //##############################################################################
        //##############################################################################
        #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);
        }