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
 public void ChipAnmAdd(AnmSquareTile rMCA)
 {
     m_animationTile.Add(rMCA);
 }