/// <summary> /// 切り取り /// </summary> /// <param name="r"></param> /// <param name="rMap"></param> /// <param name="nCatFlg"></param> public void Cat(RangeSquareTiles r, SquareTilesMap rMap, int nCatFlg) { m_objRMapchip.Set(r); m_objRMapchip.Decision(); m_catFlg = nCatFlg; m_aaMapChip = rMap.GetCat(m_objRMapchip); }
/// <summary> /// 貼り付け /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="rMap"></param> /// <param name="pasteFlg"></param> public void Paste(int x, int y, SquareTilesMap rMap, int pasteFlg) { if (m_aaMapChip == null) { return; } rMap.PasteTiles(x, y, m_objRMapchip, m_aaMapChip, rMap, m_catFlg, pasteFlg); }
/// <summary> /// タイル群をペーストする /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="r"></param> /// <param name="rAA"></param> /// <param name="rMap"></param> /// <param name="catFlg"></param> /// <param name="pasteFlg"></param> public void PasteTiles(int x, int y, RangeSquareTiles r, D2ArrayObject <FSquareTileInfoMap> rAA, SquareTilesMap rMap, int catFlg, int pasteFlg) { FSquareTileInfoMap rMIM0 = null, rMIM1 = null; int i, j, k, l, nX, nY; nX = x + r.widthBlock; nY = y + r.hightBlock; nX = nX > m_tileCountX ? m_tileCountX : nX; nY = nY > m_tileCountY ? m_tileCountY : nY; for (i = y, k = 0; i < nY; ++i, ++k) { for (j = x, l = 0; j < nX; ++j, ++l) { rMIM0 = m_mapTiles[i, j]; rMIM1 = rAA[k, l]; if (catFlg == CatAndPasteSquareTiles.TARGET_LAYER_ALL) { rMIM0.L00._n = rMIM1.L00._n; rMIM0.L01._n = rMIM1.L01._n; } else if (catFlg == CatAndPasteSquareTiles.TARGET_LAYER00) { if (pasteFlg == CatAndPasteSquareTiles.TARGET_LAYER00) { rMIM0.L00._n = rMIM1.L00._n; } else if (pasteFlg == CatAndPasteSquareTiles.TARGET_LAYER01) { rMIM0.L01._n = rMIM1.L00._n; } } else if (catFlg == CatAndPasteSquareTiles.TARGET_LAYER01) { if (pasteFlg == CatAndPasteSquareTiles.TARGET_LAYER00) { rMIM0.L00._n = rMIM1.L01._n; } else if (pasteFlg == CatAndPasteSquareTiles.TARGET_LAYER01) { rMIM0.L01._n = rMIM1.L01._n; } } } } }