Ejemplo n.º 1
0
        /// <summary>
        /// アニメーションチップを書き込む
        /// </summary>
        /// <param name="objSave"></param>
        private bool WriteAnimationChip(SaveState objSave)
        {
            int i, j;

            //----------------
            // アニメーションチップ
            //----------------
            objSave.BlockStart(FAnmSquareTileHeader.ID);
            {
                for (i = 0; i < m_animationTile.Count; ++i)
                {
                    objSave.Write(m_animationTile[i]);
                    objSave.BlockStart(FAnmSquareTileFrame.ID);
                    {
                        for (j = 0; j < m_animationTile[i].ChipCount; ++j)
                        {
                            objSave.Write(m_animationTile[i].aTile[j]);
                        }
                    }
                    objSave.BlockEnd();
                }
            }
            objSave.BlockEnd();
            return(true);
        }
Ejemplo n.º 2
0
        ///// <summary>
        ///// アニメーションRECTの読み込み
        ///// </summary>
        ///// <param name="lData"></param>
        ///// <returns></returns>
        //private bool ReadAnimationRect(LoadData lData)
        //{
        //    LoadData lData02;
        //    LoadChank lChank, lChank02;
        //    Chunk chank = new Chunk();
        //    AnimationRect tlAR = new AnimationRect();

        //    // チャンクブロックチェックしない
        //    // IDから処理選択
        //    lData.GetChank(chank);
        //    while ((lChank = lData.FindData(tlAR)) != null || !lData.GetFindEnd())
        //    {
        //        if (lChank != null)
        //        {
        //            lChank.GetBlockChank(chank);
        //            // IDから処理選択
        //            while ((lData02 = lChank.FindChank(chank)) != null)
        //            {
        //                if (chank.id == FAnimationRectFrame.ID)
        //                {
        //                    //---------------------------------
        //                    // RECTアニメーション
        //                    //---------------------------------
        //                    AnimationRectFrame tlBRD = new AnimationRectFrame();
        //                    // チェック
        //                    if (chank.nVersion != tlBRD.GetVersion() || chank.num == 0)
        //                    {
        //                        throw new IOException("FAnimationRectFrame バージョンが異常です。");
        //                    }
        //                    tlAR.num = 0;
        //                    tlAR.period = 0.0f;
        //                    while ((lChank02 = lData02.FindData(tlBRD)) != null || !lData02.GetFindEnd())
        //                    {
        //                        // 合計時間
        //                        tlAR.period += (float)(tlBRD.wait) * FRAME_RATE;
        //                        // 現在これ以上入れ子はない
        //                        if (lChank02 != null)
        //                        {
        //                            throw new IOException("FAnimationRectFrame 予期せぬ入れ子。");
        //                        }
        //                        ++tlAR.num;
        //                        tlAR.Add(tlBRD);
        //                        tlBRD = new AnimationRectFrame();
        //                    }
        //                    if (tlAR.num <= 1)
        //                    {
        //                        tlAR.period = 0.0f;
        //                    }
        //                }
        //                else
        //                {
        //                    // FFID_MAPCHIP_INFO以外のIDが今現在存在しないで
        //                    // 怪しい値を見つけたらエラーをはき出すようにする
        //                    throw new IOException("未対応のIDが呼ばれた。");
        //                }
        //            }
        //        }
        //        m_vAnimaRECT.Add(tlAR);
        //        tlAR = new AnimationRect();
        //    }
        //    return true;
        //}
        #endregion



        //##############################################################################
        //##############################################################################
        //##
        //##  書き込み
        //##
        //##############################################################################
        //##############################################################################
        #region 書き込み
        /// <summary>
        /// 書き込み開始
        /// </summary>
        /// <param name="objSave"></param>
        internal void RectWrite(SaveState objSave)
        {
            //-------------------------------------------
            // スクエアイメージファイルチャンクの書き込み
            //-------------------------------------------
            if (m_ptrRectImageFileDic.Count != 0)
            {
                //-----------------------------
                // FImageSquareTile
                objSave.BlockStart(FImageRect.ID);
                {
                    foreach (ImageRect valu in m_ptrRectImageFileDic.Values)
                    {
                        // イメージ番号[0]:マップチップ用のイメージ
                        objSave.Write(valu);
                        if (valu.GetID() == FImageRect.ID && valu.aSprite.Count != 0)
                        {
                            //-----------------------------
                            // FImageRect
                            objSave.BlockStart(FImageRect.ID);
                            {
                                for (int i = 0; i < valu.aSprite.Count; ++i)
                                {
                                    objSave.Write(valu.aSprite[i]);
                                }
                            }
                            objSave.BlockEnd();
                        }
                    }
                }
                objSave.BlockEnd();
            }
        }
Ejemplo n.º 3
0
 //##############################################################################
 //##############################################################################
 //##
 //##  書き込み
 //##
 //##############################################################################
 //##############################################################################
 #region 書き込み
 /// <summary>
 /// 書き込み開始
 /// </summary>
 /// <param name="objSave"></param>
 internal void SquareTileWrite(SaveState objSave)
 {
     //-------------------------------------------
     // スクエアイメージファイルチャンクの書き込み
     //-------------------------------------------
     if (m_ptrSquareTileImageFileDic.Count != 0)
     {
         //-----------------------------
         // FImageSquareTile
         objSave.BlockStart(FImageSquareTile.ID);
         {
             foreach (ImageSquareTile valu in m_ptrSquareTileImageFileDic.Values)
             {
                 // イメージ番号[0]:マップチップ用のイメージ
                 objSave.Write(valu);
                 if (valu.GetID() == FImageSquareTile.ID && valu.tileInfos.Count != 0)
                 {
                     //-----------------------------
                     // FSquareTileInfo
                     objSave.BlockStart(FSquareTileInfo.ID);
                     {
                         for (int i = 0; i < valu.tileInfos.Count; ++i)
                         {
                             objSave.Write(valu.tileInfos[i]);
                         }
                     }
                     objSave.BlockEnd();
                 }
             }
         }
         objSave.BlockEnd();
     }
 }
Ejemplo n.º 4
0
        //###########################################################################
        //##
        //## 書き込み
        //##
        //###########################################################################
        public bool FF_WriteStageFile(SaveState objSave)
        {
            FF_BACKGROUND ffBG = new FF_BACKGROUND();

            FF_BACKGROUND_CHIP bgChip = new FF_BACKGROUND_CHIP();
            FF_BACKGROUND_RECT bgRECT = new FF_BACKGROUND_RECT();
            int i, j;

            ffBG.SetString(m_strName);
            ffBG.tileNumX = m_tileNumX;
            ffBG.tileNumY = m_tileNumY;
            ffBG.tmp      = 0;
            objSave.Write(ffBG);

            if (m_BGCs.LengthX != 0)
            {
                // チップデータ
                objSave.BlockStart(FF_BACKGROUND_CHIP.ID);
                {
                    for (i = 0; i < m_BGCs.LengthY; ++i)
                    {
                        for (j = 0; j < m_BGCs.LengthX; ++j)
                        {
                            objSave.Write(m_BGCs[i, j]);
                        }
                    }
                }
                objSave.BlockEnd();
            }
            // 背景、全景で一枚絵から切り取るヘッダ部分
            if (m_aBGR.Count != 0)
            {
                objSave.BlockStart(FF_BACKGROUND_RECT.ID);
                {
                    for (i = 0; i < m_aBGR.Count; ++i)
                    {
                        objSave.Write(m_aBGR[i]);
                    }
                }
                objSave.BlockEnd();
            }
            return(true);
        }
Ejemplo n.º 5
0
        //bool StartAnimation(const TCHAR *tszName);
        //HRESULT PreUpdate(float fElapsedTime );
        //bool ChangeMapChipCollisionChecku(const MCVECTOR2& rMovePos, const MC_AABB2D& rTagetAABB);
        //int MapChipDraw(
        //    const VP_IMAGEFILE &rvpImgFile,
        //    const MC_AABB2D* pBOA,
        //    int nX, int nY
        //);

        //###########################################################################
        //##
        //## 書き込み
        //##
        //###########################################################################
        #region 書き込み
        /// <summary>
        ///
        /// </summary>
        /// <param name="objSave"></param>
        /// <returns></returns>
        internal bool FF_WriteStageFile(SaveState objSave)
        {
            int i, j, k;
            //----------------
            // マップ
            //----------------
            FSquareTileMapHeader map = new FSquareTileMapHeader();

            // マップ
            map.SetString(m_mapName);
            map.tileNumX = m_tileCountX;
            map.tileNumY = m_tileCountY;

            objSave.Write(map);
            //----------------
            // 一つのマップチップ
            //----------------
            objSave.BlockStart(FSquareTileInfoMap.ID);
            {
                for (i = 0; i < m_mapTiles.LengthY; ++i)
                {
                    for (j = 0; j < m_mapTiles.LengthX; ++j)
                    {
                        objSave.Write(m_mapTiles[i, j]);
                    }
                }
            }
            objSave.BlockEnd();

            //----------------
            // イベントRECT
            //----------------
            if (m_eventRect.Count > 0)
            {
                FSquareTileMapRect eRect = new FSquareTileMapRect();
                objSave.BlockStart(FSquareTileMapRect.ID);
                {
                    foreach (KeyValuePair <string, FSquareTileMapRect> kvp in m_eventRect)
                    {
                        objSave.Write(kvp.Value);
                    }
                }
                objSave.BlockEnd();
            }
            //----------------
            // マップ置き換え
            //----------------
            if (m_transPoseTiles.Count > 0)
            {
                objSave.BlockStart(FSquareTilesTransposeHeader.ID);
                {
                    foreach (KeyValuePair <string, SquareTilesTranspose> kvp in m_transPoseTiles)
                    {
                        objSave.Write(kvp.Value);
                        objSave.BlockStart(FSquareTilesTransposeFrame.ID);
                        {
                            for (i = 0; i < kvp.Value.aTCF.Count; ++i)
                            {
                                objSave.Write(kvp.Value.aTCF[i]);
                                // マップチップデータ
                                objSave.BlockStart(FSquareTileInfoMap.ID);
                                {
                                    for (j = 0; j < kvp.Value.aTCF[i].aaMapChip.LengthY; ++j)
                                    {
                                        for (k = 0; k < kvp.Value.aTCF[i].aaMapChip.LengthX; ++k)
                                        {
                                            objSave.Write(kvp.Value.aTCF[i].aaMapChip[j, k]);
                                        }
                                    }
                                }
                                objSave.BlockEnd();
                            }
                        }
                        objSave.BlockEnd();
                    }
                }
                objSave.BlockEnd();
            }
            return(true);
        }